行列構成ファイルを読み込んでループ処理するシェル

UNIX3-100

行列構成のファイルを読み込んでループ処理するシェル

1項目に「名前」、2項目に「電話番号」、3項目に「住所」が複数行書いたファイル「AAA」を作成します。

$ cat ./files/AAA
AAA 090-1111-1111 Tokyo
BBB 090-1111-2222 Osaka
CCC 090-1111-3333 Aichi
DDD 090-1111-4444 Fukuoka
EEE 090-1111-5555 Okinawa
$

 

ファイル「AAA」を読み込んで、

 ”1項目” さんは、電話番号が ”2項目” で、”3項目” に住んでいます。

をechoするシェルを作ります。

シェル内容はこのようになります。

while read NAME TEL ADDRESS ;do
  echo "$NAME さんは、電話番号が $TEL で、$ADDRESS に住んでいます。"
done < ./files/AAA

 

done の後に、ファイル「./files/AAA」 を 「 < 」で 読み込ませています。
そして各レコードの、1項目を変数「NAME」、2項目を変数「NAME」、3項目を変数「ADDRESS」に代入し、echoする仕様です。

実行するとこのような結果になります。

$ while_echo.sh
AAA さんは、電話番号が 090-1111-1111 で、Tokyo に住んでいます。
BBB さんは、電話番号が 090-1111-2222 で、Osaka に住んでいます。
CCC さんは、電話番号が 090-1111-3333 で、Aichi に住んでいます。
DDD さんは、電話番号が 090-1111-4444 で、Fukuoka に住んでいます。
EEE さんは、電話番号が 090-1111-5555 で、Okinawa に住んでいます。
$

 

複数の処理をまとめて実行したいときなどに使えます。

 

 

 


サブコンテンツ

このページの先頭へ