当使用变量进行比较时,awk无法在bash脚本中工作

rah*_*til 3 linux bash shell

以下是我的bash脚本.如果我使用varible oid在awk中进行比较,它不会显示匹配的行.

oid="3586302804992"
SYMBOL_CSV_FILE="symbol/BAC"
awk -F, '$5 == $oid' "$SYMBOL_CSV_FILE"
echo "2nd"
awk -F, '$5 == "3586302804992"' "$SYMBOL_CSV_FILE"
Run Code Online (Sandbox Code Playgroud)

O/P是

2nd
BAC,1,O,1,3586302804992
Run Code Online (Sandbox Code Playgroud)

symbol/BAK 文件内容是

BAC,1,O,1,3586302804992o
Run Code Online (Sandbox Code Playgroud)

将""放在第3行的$ oid附近,并没有任何区别.

anu*_*ava 6

代替:

awk -F, '$5 == $oid' "$SYMBOL_CSV_FILE"
Run Code Online (Sandbox Code Playgroud)

像这样用它:

awk -F "," -v oid="$oid" '$5 == oid' "$SYMBOL_CSV_FILE"
Run Code Online (Sandbox Code Playgroud)