Bashシェルスクリプトでテキストファイルから列データを読み取る方法
bashシェルスクリプトを使用して実行できるタスクの1つは、テキストファイルからデータを読み取り、処理することです。この記事では、テキストファイルから特定の列のデータを読み取る方法や、bashシェルスクリプトでテキストファイルから複数の列を読み取る方法を見ていきます。
Bashシェルスクリプトでテキストファイルから列データを読み取る方法
Bashシェルスクリプトでテキストファイルの特定の列のデータを読み取ることは、自動化された反復タスク、ソフトウェア開発、テキスト管理など、さまざまなアプリケーションで便利です。必要なのは、該当する列を読み取ることだけです。以下に、任意のテキストファイルから任意の列を読むための構文を示します。
#!/bin/bash
while read line; do
# use awk to extract the third field (the name) from each line
<any-name>=$(echo $line | awk '{print $<column-number>}')
# print the name
echo $<any-name>
done < <file-name>.txt1: スクリプトは、シェバン行 #!/bin/bash を使用して使用されるシェルインタープリタを指定することから始まります。
2: while ループはテキストファイルの内容を行ごとに読み取り、読み込まれた各行に対して awk コマンドを使用して、その行からフィールド(名前)を抽出します。awk コマンドはパターン {print $<column-number>} を使用してフィールドを選択し、それが変数 name に格納されます。
3: 最後に、スクリプトはechoコマンドを使用してname変数の値を出力し、このプロセスはファイルに読み取る行がなくなるまで各行に対して繰り返されます。
読者の理解のために、テキストファイルから1つの列を読み取るために上記の構文を使用しました。以下はそのコードです。
#!/bin/bash
while read line; do
# use awk to extract the second field from each line
info=$(echo $line | awk '{print $3}')
# print the age
echo $info
done < company_details.txtここでは、コード内で、company detailsという名前のテキストファイルの各行の第三列を読み取りました。awkコマンドを使用して、その行から第三フィールド(名前)を抽出しています。awkコマンドは、第三フィールドを選択するために{print $3}というパターンを使用しています。以下は私の例のコードの出力です:
以下は、私がデモンストレーション用に作成したテキストファイルです:
Bashシェルスクリプトでテキストファイルの複数列を読む方法
複数の列やファイルを読みたい場合は、必要なのは列番号を追加するだけで、他は同じです。ここにテキストファイルの複数の列を読み取るためのコードがあります:
#!/bin/bash
This line specifies that the script should be interpreted by the bash shell.
loop through each line of the file
while read line; do
# use awk to extract the third field (the name) from each line
info=$(echo $line | awk '{print $1, $2, $3}')
# print the name
echo $info
done < company_details.txt以下は、テキストファイルのすべての3つの列を読み取ったコードの出力です:
結論
バッシュスクリプトは、特にUnixベースのシステムに関連するさまざまなタスクを自動化するために使用できる多用途のツールです。whileループや他のシェルコマンドを組み合わせることで、テキストファイルから列データを簡単に読み取り、そのデータでさまざまな操作を実行できます。


