awkを使用してファイルから印刷しようとしていますが、出力は空です。これはこれまで私のコードです
accountNum=$1
while read -r LINE || [[ -n $LINE ]] ; do
awk -F',' '{ if($1==accountNum) { print $3.$2 } }' Accounts
done < Accounts
私もこれを試しました:
accountNum=$1
while read -r LINE || [[ -n $LINE ]] ; do
echo $LINE | awk -F',' '{ if($1==accountNum) { print $3.$2 } }'
done < Accounts
入力ファイルは次のとおりです。
1,Doe,John
2,Rooney,Wayne
3,Smith,Will
4,Crow,Russel
5,Cruise,Tom
このファイルを実行するときに予想される出力は次のとおりです。
$./file.sh 3
Will Smith
ただし、次のメッセージが表示されます。
$./file.sh 3
$
つまり、何も印刷されないという意味です。 Cutのソリューションについて知っていますが、awkを使いたいです。
ベストアンサー1
-v
次のオプションを使用する必要がありますawk
。
awk -F',' -v accNum="$1" '$1 == accNum {print $3,$2}'
二重引用符を使用すると、$1
シェルはすべての特殊文字(存在する場合)を処理します。