1行ずつのファイル読み込み

シェルスクリプトで、1行ずつのファイル読み込みをしたい場合は、次のようにします。

#!/bin/sh
filename=$1
cat ${filename} | while read line
do
  echo ${line}
done

もしくはリダイレクトを使って次のようにします。

#!/bin/sh
filename=$1
while read line ; do
  echo ${line}
done < ${filename}

ちなみに、行にある値に空白やタブが含まれていない場合は次のようにすることもできます。(こちらだと、空白やタブも区切り文字とされてしまうので注意してください)

#!/bin/sh
filename=$1
for line in `cat ${filename}`
do
  echo ${line}
done

詳解 シェルスクリプト」や「仕事に使えるLinuxシェルスクリプト~bashで作る実用サンプル41 」などで勉強してみると良いでしょう。

—-
関連書籍

同じタグの記事: bash
同じタグの記事: shell script
同じカテゴリの記事: Linux
関連書籍: bash