我正在尝试 grep 文件中带有空格的字符串,grep 它本身适用于以下命令:
grep ": error" makeErr.txt
...results as expected...
Run Code Online (Sandbox Code Playgroud)
现在我试图把这个命令放在 watch 中,但它不起作用:
watch 1 'grep ": error:" makeErr.txt'
> grep ": error:" makeErr.txt
grep: error:": No such file or directory
Run Code Online (Sandbox Code Playgroud)
据说它试图运行grep ": error:" makeErr.txt哪个是正确的命令,但由于某种原因导致错误。我尝试了很多引号变体,但所有结果都相同。我该怎么做?
如果输出
which watch && watch --version
Run Code Online (Sandbox Code Playgroud)
是这样的:
/usr/bin/watch
watch from procps-ng 3.3.10
Run Code Online (Sandbox Code Playgroud)
那么你需要将它括在 '' 中,因为 watch 会导致命令通过 sh -c 运行。
watch -n 1 'grep ": error" makeErr.txt'
Run Code Online (Sandbox Code Playgroud)
也许跑步
tail -f makeErr.txt | grep ": error"
Run Code Online (Sandbox Code Playgroud)
将是观看的替代方案