Usando ambos, Grep e Cut

0

Eu quero aumentar a saída do tcpdump e cortar parte dele, mas o comando abaixo não está funcionando.

tcpdump ... | grep -i --line-buffered "..." | cut -d'&' -f1,2

Você sabe qual é o problema? Eu acho que é porque o tcpdump produz dados em tempo real, mas não tenho idéia de como resolver esse problema.

    
por g3d 08.03.2016 / 15:04

2 respostas

3

Use a opção -l com tcpdump.

-l Make stdout line buffered. Useful if you want to see the data while capturing it. E.g., tcpdump -l | tee dat'' ortcpdump -l > dat & tail -f dat''.

Claramente declarado na página do manual.

tcpdump -l ... | grep -i "..." | cut -d'&' -f1,2
    
por 08.03.2016 / 16:46
1

Você pode canalizar a saída de tcpdump para um arquivo por meio de um processo em segundo plano e, em seguida, usar tail -F <file> --pid=$! para segui-lo.

Então, algo como

tcpdump ... > tcpdump.log 2>&1 &
tail -F tcpdump.log --pid=$! | grep -i --line-buffered "..." | cut -d '&' -f1,2
    
por 08.03.2016 / 16:25