use*_*798 1 unix linux awk grep
我试图将以下命令传递给'watch'以便定期重复命令.
grep "foo bar" log_file.log | awk '$(NF-1) == 0'
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时:
watch -n 5 "grep \"foo bar\" log_file.log | awk '$(NF-1) == 0'"
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
awk: cmd. line:1: == 0<br>
awk: cmd. line:1: ^ syntax error
Run Code Online (Sandbox Code Playgroud)
如何成功将此命令传递给"观看"?谢谢!
这是因为$(NF-1)表达.您需要转义,$以便awk在扩展期间在命令中解释它而不是之前:
watch -n 5 "grep \"foo bar\" log_file.log | awk '\$(NF-1) == 0'"
^
Run Code Online (Sandbox Code Playgroud)