【シェルスクリプト】csvファイルを読み込んで処理するスクリプト

csvを読み込むシェルスクリプト

テスト用として以下の区切り文字が「,」で、項目が3つあるcsvファイルを用意しました。

$ cat test.csv 
1,apple,100
2,orange,80
3,nashi,150
4,grape,300
5,meron,500

シェルスクリプトの説明

whileでcsvファイルの内容を一行づづ読み込み、cutコマンドの-dオプションで区切り文字として「,」を指定、-fオプションで抜き出す項目を指定してそれぞれ変数に格納しています。

#!/usr/bin/bash

CSVDATA=test.csv

while read LINE
do
  column1=$(echo $LINE | cut -d , -f 1)
  column2=$(echo $LINE | cut -d , -f 2)
  column3=$(echo $LINE | cut -d , -f 3)

  echo "$column2の値段は$column3です。"
done < $CSVDATA

今回はechoで変数column2とcolumn3に格納した内容を表示させていますので、実行結果は以下のようになります。

$ bash ./csv_read.sh 
appleの値段は100です。
orangeの値段は80です。
nashiの値段は150です。
grapeの値段は300です。
meronの値段は500です。

cutコマンドで指定する区切り文字は「,」以外ににも「:」など他の区切り文字を指定することができるので、ファイルの内容によって適宜変更することができます。

コメント

タイトルとURLをコピーしました