grep não corresponde à saída nc - tee não fornece saída

grep não corresponde à saída nc - tee não fornece saída

Veja as perguntas e respostas originais sobre o grep não aceitar a saída do netcat no stderr em umpostagem anterior do StackExchange.

Resposta concisa. Eu gosto disso. Por que adicionar um tee no final não produz nenhum resultado?

nc -zvv localhost 3100-3200 2>&1 | grep succeeded | tee test.txt

Usar apenas tee funciona. Usar apenas grep funciona. Encadear tee após grep não fornece saída (console ou arquivo).

Alguma ideia?

Responder1

DevilaN, Kusalananda,

Obrigado. Foi uma combinação da minha impaciência e comportamento grep e nc. Usando o comando abaixo no meu Raspberry Pi,

nc -nvw1 127.0.0.1 1-65535 2>&1 | grep succeeded | tee test.txt

Todas as portas foram verificadas, ~então~ o console imprimiu 6 portas abertas. Quando usei a opção --line-buffered, o comando se comportou como esperado (imprimindo conforme foram encontrados).

Além disso, o comportamento de buffer do grep aparentemente acontece apenas quando canalizado para tee. Quando tee não é usado e --line-buffered não é usado, grep ainda imprime as portas abertas conforme encontradas.

Sem a opção -w1, a primeira porta aberta é impressa no console pelo grep, mas a saída trava - na verdade, é a saída do nc que trava neste caso.

informação relacionada