見出し画像

【シェルスクリプト】ファイルの中身を順に処理

 こんにちは〜インフラエンジニアのtamolabです!
今日はシャルスクリプトについて書こうと思います!私はよく業務でデータ処理やログ解析でシェルスクリプトを利用します!そのデータ処理の際によく利用する処理を書きたいと思います。Excelだと簡単に処理できる内容ではありますが、Excelで処理するには時間がかかりすぎますし、大きいファイルだとExcelで開くことができません。(行数や列数に制限があります)私は過去に10億行のファイルを処理したときは、迷わずシャルスクリプトを利用してサーバ上で処理を行いました。

1. やりたいこと

fdさfs

 ファイルの中身を取得して上から順番に処理していきます。
本記事ではファイル内の名前データ(name.txt)の中身を上から取得して、通し番号を付与し、名前の後ろに”@mail.com”を付与したリストcsv(name.csv)に変換するループ文のシェルスクリプトを紹介します。

2. コード紹介

図1

現在のフォルダの状況は下記です。

$ 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. 実行例

画像3

$ cat name.csv
1,TaroSuzuki@mail.com
2,JiroNakamura@mail.com
3,NorikoYamada@mail.com
4,JunkoNishida@mail.com

4. キーワード

画像4

#シェルスクリプト #for文 #インクリメント #変数 #インフラエンジニア #ネットワークエンジニア #IT

5. お問い合わせ先

画像5

 本投稿のコメントでも構いませんし、下記からお問い合わせいただいても大丈夫です。
 note.tamolab@gmail.com

サポートをお願いいたしますmm もしXXXXな記事を書いて欲しい、XXXXな記事は不適切だなどのご要望がありましたら、お知らせください!