gkm*_*hit 8 shell scripting awk
我正在尝试使用 awk 从文件中打印,但我的输出为空。到目前为止,这是我的代码
accountNum=$1
while read -r LINE || [[ -n $LINE ]] ; do
awk -F',' '{ if($1==accountNum) { print $3.$2 } }' Accounts
done < Accounts
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
accountNum=$1
while read -r LINE || [[ -n $LINE ]] ; do
echo $LINE | awk -F',' '{ if($1==accountNum) { print $3.$2 } }'
done < Accounts
Run Code Online (Sandbox Code Playgroud)
输入文件是:
1,Doe,John
2,Rooney,Wayne
3,Smith,Will
4,Crow,Russel
5,Cruise,Tom
Run Code Online (Sandbox Code Playgroud)
我运行文件时的预期输出是
$./file.sh 3
Will Smith
Run Code Online (Sandbox Code Playgroud)
但我得到以下
$./file.sh 3
$
Run Code Online (Sandbox Code Playgroud)
那是什么都没有打印出来。我知道使用 cut 的解决方案,但我想使用 awk。
您应该使用以下-v
选项awk
:
awk -F',' -v accNum="$1" '$1 == accNum {print $3,$2}'
Run Code Online (Sandbox Code Playgroud)
使用$1
双引号,shell 将为您处理其所有特殊字符(如果有)。