bash – パイプで時計を使う

bash grep tail watch

このコマンドを実行してみたいと思います

watch -n 1 tail -n 200 log/site_dev.log | grep Doctrine

しかし、grepが尻尾ではなく時計の上で走ろうとする「と思う」ので、実行されない

のような方法があるのでしょうか

watch -n 1 (tail -n 200 log/site_dev.log | grep Doctrine)

ありがとうございます!

  200  Tommy B.  2010-05-12


ベストアンサー

コマンドを引用符で囲みます

watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'

294  tonylo  2010-05-12


私は間違っているかもしれませんが、これは同じこと(追加されたログラインに一致するログラインを表示すること)をより簡単に達成するのではないでしょうか?

tail -f -n 200 log/site_dev.log | grep Doctrine

31  Mitch  2010-05-12


コマンドを引用符で囲むことができます

watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'

コマンドに引用符が入っている場合は、適切なエスケープをして別のタイプの引用符を使用することができます

watch -n 1 $'tail -n 200 log/site_dev.log | fgrep \'Doctrine.*\''

本当に気の利いたことをしようとしているのであれば、コマンドやコマンドをスクリプトに入れて、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

必要に応じて相対パスを考慮するようにしてください

5  bschlueter  2018-08-27


watchがコマンドを実行しているので、二重引用符を使用してください

watch "ls -la | wc -l"

0  Robert Blandford  2020-02-04


タイトルとURLをコピーしました