Bash > ファイルを一行ずつ処理する方法

更新日 2012-09-10
広告
ファイルの内容を一行ずつ処理する方法を紹介します。
例えば、以下のように cat と read コマンドを利用する方法があります。
cat ファイル名 | while read 変数名
do
    変数を使った処理
done
cat でファイルの内容を出力し、それを while ループしながら read で読み取ります。
以下のサンプル read-each-line.sh では、ファイルの内容に、行数をつけて表示します。ファイルは、引数として渡します。
#!/bin/bash

numLine=1
cat $1 | while read line
do
    echo $numLine: $line # 出力
    numLine=$((numLine + 1)) # 行数を1増やす
done
また、次のファイル sample.dat を用意します。
$ cat sample.dat 
1 10 100
2 20 200
3 30 300
それでは、read-each-line.sh を実行してみます。
$ bash read-each-line.sh sample.dat 
1: 1 10 100
2: 2 20 200
3: 3 30 300
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system