Bashスクリプトでファイルを1行ずつ読み取る
1. 概要
このチュートリアルでは、テキストファイルを1行ずつ読み取る小さなスクリプトを作成します。
このスクリプトは、テキストファイルの各行で特定の操作を実行する場合に役立ちます。たとえば、画面の各行を印刷できます。
2. テキストファイル
lines.txtという名前のテキストファイルがあると仮定します。
$ cat lines.txt
first line
second line
\\third line
テキストファイルを作成したので、スクリプトを見てみましょう。
3. スクリプト
スクリプトは、引数としてファイル名を受け取る必要があります。 明確にするために、 $1変数は最初の引数を保持します。
#!/bin/bash
# Receive file name as first argument
file_name=$1
while read -r line; do
# Reading line by line
echo "$line"
done < $file_name
ここでは、line変数を画面に出力するだけです。 さらに、何か他のことをしたい場合は、 echo“ $ line”lineを置き換えるだけです。 さらに、 -r フラグは、読み取りにバックスラッシュエスケープを許可しないように指示します。
その結果、3行目はそのまま表示されます。
4. スクリプトを実行可能にする
スクリプトを作成したので、スクリプトを実行可能にする必要があります。
$ chmod u+x read_lines.bash
スクリプトが実行可能になりました。
5. スクリプトの実行
スクリプトにファイル名を引数として指定する必要があります。
$ ./read_lines.bash lines.txt
first line
second line
\\third line
各行が画面に正常に表示されていることがわかります。
6. 結論
つまり、テキストファイルを1行ずつ読み取り、各行を画面に表示するBashスクリプトを作成する方法を学びました。