Bashでファイルを一行ずつ処理する
構文
catコマンドとreadコマンドを利用したファイルを一行ずつ処理する方法。
1 2 3 4 | cat ファイル名 | while read 変数名 do 処理 done |
cat でファイルの内容を出力し、それを while ループしながら read で読み込む。
サンプル
以下のサンプルでは、ファイルの内容に、行数をつけて表示する。ファイルは、引数として渡す。
1 2 3 4 5 6 7 8 | #!/bin/bash numLine=1 cat $1 | while read line do echo $numLine: $line # 出力 numLine=$((numLine + 1)) # 行数を1加算 done |
読み込み用ファイルを準備する。
1 2 3 4 | $ cat sample.txt aaa 100 bbb 200 ccc 150 |
サンプルシェルの実行。
1 2 3 4 | $ ./read-file-line.sh sample.txt 1: aaa 100 2: bbb 200 3: ccc 150 |