查看文件中的 grep 无法正常工作

Vla*_*adp 1 unix linux bash

我正在尝试 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哪个是正确的命令,但由于某种原因导致错误。我尝试了很多引号变体,但所有结果都相同。我该怎么做?

wgi*_*cht 5

如果输出

  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)

将是观看的替代方案