Linux 监视命令-处理引号

Linux 监视命令-处理引号,linux,unix,awk,grep,Linux,Unix,Awk,Grep,我试图将以下命令传递给“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 如何将此命令成功传递给“watch

我试图将以下命令传递给“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
如何将此命令成功传递给“watch”?谢谢

这是因为$NF-1表达。您需要转义$,以便在awk命令中对其进行解释,而不是在展开期间之前:

watch -n 5 "grep \"foo bar\" log_file.log | awk '\$(NF-1) == 0'"
                                                 ^
这是因为$NF-1表达式。您需要转义$,以便在awk命令中对其进行解释,而不是在展开期间之前:

watch -n 5 "grep \"foo bar\" log_file.log | awk '\$(NF-1) == 0'"
                                                 ^

我想你的美元被替换了


watch-n5 grep'foo bar'log\u file.log | awk'\$NF-1==0'

我想你的美元被替换了


注意-n 5 grep'foo bar'log\u file.log | awk'\$NF-1==0'

不客气!既然你是新来的,别忘了在最有助于理解和解决问题的答案上标注“接受”。别客气,再见!既然你是新来的,别忘了在最有助于理解和解决问题的答案上标注“接受”。另见