我有如下数据:
apple pear sugar pizza
pizza chicken pasta turkey
我想 grep 查找“pizza”,但只 grep 第四列。我知道我可以使用:
awk '$4 == "pizza"'
但是我有一个名为 food 的变量,其中包含“pizza”一词。当我做
food=pizza
awk '$4 == "$food"'
我收到一个错误,当我更改为双撇号时,我收到此错误:
awk: line 1: syntax error at or near ==
我怎样才能做到这一点?
答案1
您的 shell 变量不会在 awk 程序使用的单引号内扩展。
您可以使用以下选项将 shell 变量传递给 awk -v
:
food=pizza
awk -v food="$food" '$4 == food'