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スクリプトを作成する方法を学びました。