Tom*_* B. 211 bash grep tail watch
我想运行这个命令:
watch -n 1 tail -n 200 log/site_dev.log | grep Doctrine
Run Code Online (Sandbox Code Playgroud)
但它没有运行,因为“我认为”grep 试图在手表上而不是尾巴上运行......
有没有办法做类似的事情
watch -n 1 (tail -n 200 log/site_dev.log | grep Doctrine)
Run Code Online (Sandbox Code Playgroud)
非常感谢!
小智 309
用引号将命令括起来
watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'
Run Code Online (Sandbox Code Playgroud)
Mit*_*tch 31
我可能是错的,但这不会更简单地实现同样的事情(查看添加的匹配日志行)吗?
tail -f -n 200 log/site_dev.log | grep Doctrine
Run Code Online (Sandbox Code Playgroud)
您可以用引号将命令括起来:
watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'
Run Code Online (Sandbox Code Playgroud)
如果命令中有引号,您可以使用不同类型的引号并进行适当的转义:
watch -n 1 $'tail -n 200 log/site_dev.log | fgrep \'Doctrine.*\''
Run Code Online (Sandbox Code Playgroud)
如果您正在尝试做一些非常聪明的事情,请将一个或多个命令放入脚本中并与 watch 一起使用:
cat <<EOF >/tmp/watch-command
tail -n 200 $(pwd)/log/site_dev.log | fgrep Doctrine
EOF
chmod +x /tmp/watch-command
watch /tmp/watch-command
Run Code Online (Sandbox Code Playgroud)
如有必要,请确保考虑相对路径。