Usando o relógio com canos

154

Gostaria de executar este comando:

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

Mas ele não roda, porque "eu acho" que o grep tenta rodar no relógio ao invés da cauda ...

Existe uma maneira de fazer algo como

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

Muito obrigado!

    
por TomShreds 12.05.2010 / 21:23

3 respostas

245

Coloque o comando entre aspas

watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'
    
por 12.05.2010 / 21:28
27

Eu posso estar errado, mas isso não seria o mesmo (visualizar as linhas de log correspondentes à medida que elas são adicionadas) de forma mais simples?

tail -f -n 200 log/site_dev.log | grep Doctrine
    
por 12.05.2010 / 22:16
0

Você pode colocar o comando entre aspas:

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

Se o comando tiver aspas, você poderá usar um tipo diferente de aspas com o escape apropriado:

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

Se você está tentando fazer algo realmente inteligente, coloque o comando ou comandos em um script e use-o com o relógio:

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

Certifique-se de considerar caminhos relativos, se necessário.

    
por 27.08.2018 / 18:00