シェルスクリプトで、複数の列を持つファイルのすべての行を印刷します。

シェルスクリプトで、複数の列を持つファイルのすべての行を印刷します。

次の形式の4列のファイルがあります。

name;user_id;dob;date_of_joining

シェルスクリプトで以下の出力のすべての変数を印刷したい

従業員「$name」の生年月日は「$dob」の「$user_id」で、「$date_of_joining」に組織に参加しました。

どうすればいいですか?

答え1

シェルを使用すると、変数をread操作するIFSコマンドを使用して、1行から複数​​のフィールドを取得できます。

while IFS=';' read -r name user_id dob joined; do
    echo "The employee $name is having $user_id whose date of birth is $dob and joined organisation on $joined"
done < filename

答え2

使用awk:

awk -F\; '{print("The employee", $1, "is having", $2, "whose date of birth is", $3, "and joined organisation on", $4)}' filename

ファイル名はfilename

関連情報