我正在尝试将以下命令传递给'watch',以便定期重复命令。
grep "foo bar" log_file.log | awk '$(NF-1) == 0'
然而,当我这样做时:
watch -n 5 "grep \"foo bar\" log_file.log | awk '$(NF-1) == 0'"
我收到以下错误:
awk: cmd. line:1: == 0<br>
awk: cmd. line:1: ^ syntax error
如何成功将此命令传递给“观看”?谢谢!
答案 0 :(得分:5)
这是因为$(NF-1)
表达式。您需要转义$
以便在awk
命令中解释它,而不是在扩展期间解释它:
watch -n 5 "grep \"foo bar\" log_file.log | awk '\$(NF-1) == 0'"
^
答案 1 :(得分:1)
我认为您的$正在被替换。
观看-n 5“grep'foo bar'log_file.log | awk'\ $(NF-1)== 0'”