grep não corresponde na saída nc

2

Estou usando nc para procurar portas abertas, mas estou digitalizando um amplo intervalo e exibindo muitos resultados. Tentar grep da palavra "succeeded" não funciona por algum motivo:

$ nc -zv localhost 31000-32000 | grep succeeded
...
nc: connect to localhost port 31957 (tcp) failed: Connection refused
nc: connect to localhost port 31958 (tcp) failed: Connection refused
nc: connect to localhost port 31959 (tcp) failed: Connection refused
Connection to localhost 31960 port [tcp/*] succeeded!
nc: connect to localhost port 31961 (tcp) failed: Connection refused
nc: connect to localhost port 31962 (tcp) failed: Connection refused
nc: connect to localhost port 31963 (tcp) failed: Connection refused
nc: connect to localhost port 31964 (tcp) failed: Connection refused
...

(pensei em enviar as mensagens de erro para /dev/null também: nc -zv localhost 31000-32000 2>/dev/null . Mas, nesse caso, não há resultados. Parece que todas as mensagens de status nc port são mensagens de erro / depuração )

    
por Juicy 31.07.2015 / 11:08

1 resposta

8

nc escreve sua saída para o erro padrão, você precisa:

nc -zvv localhost 31000-32000 2>&1 | grep succeeded

O 2>&1 redirecionará o erro padrão para a saída padrão, para que você possa canalizá-lo para grep .

    
por 31.07.2015 / 11:13