![見出し画像](https://assets.st-note.com/production/uploads/images/44237123/rectangle_large_type_2_8fae120b5c85bf55e9b797d80984eb41.png?width=1200)
【シェルスクリプト】ファイルの中身を順に処理
こんにちは〜インフラエンジニアのtamolabです!
今日はシャルスクリプトについて書こうと思います!私はよく業務でデータ処理やログ解析でシェルスクリプトを利用します!そのデータ処理の際によく利用する処理を書きたいと思います。Excelだと簡単に処理できる内容ではありますが、Excelで処理するには時間がかかりすぎますし、大きいファイルだとExcelで開くことができません。(行数や列数に制限があります)私は過去に10億行のファイルを処理したときは、迷わずシャルスクリプトを利用してサーバ上で処理を行いました。
1. やりたいこと
ファイルの中身を取得して上から順番に処理していきます。
本記事ではファイル内の名前データ(name.txt)の中身を上から取得して、通し番号を付与し、名前の後ろに”@mail.com”を付与したリストcsv(name.csv)に変換するループ文のシェルスクリプトを紹介します。
2. コード紹介
現在のフォルダの状況は下記です。
$ cat name.txt
TaroSuzuki
JiroNakamura
NorikoYamada
JunkoNishida
実行文は下記になります。
#!/bin/sh
cnt=1
cat name.txt | while read data
do
echo "${cnt},${data}@mail.com" >> name.csv
#cnt変数のインクリメント
cnt=`expr ${cnt} + 1`
done
3. 実行例
$ cat name.csv
1,TaroSuzuki@mail.com
2,JiroNakamura@mail.com
3,NorikoYamada@mail.com
4,JunkoNishida@mail.com
4. キーワード
#シェルスクリプト #for文 #インクリメント #変数 #インフラエンジニア #ネットワークエンジニア #IT
5. お問い合わせ先
本投稿のコメントでも構いませんし、下記からお問い合わせいただいても大丈夫です。
note.tamolab@gmail.com
サポートをお願いいたしますmm もしXXXXな記事を書いて欲しい、XXXXな記事は不適切だなどのご要望がありましたら、お知らせください!