Consulte las preguntas y respuestas originales sobre grep que no acepta la salida de netcat en stderr en unpublicación anterior de StackExchange.
Respuesta concisa. Me gusta. ¿Por qué agregar una T al final no produce ningún resultado?
nc -zvv localhost 3100-3200 2>&1 | grep succeeded | tee test.txt
Usar solo T funciona. Usar solo grep funciona. Encadenar tee después de grep no produce resultados (consola o archivo).
¿Algunas ideas?
Respuesta1
DevilaN, Kusalananda,
Gracias. Fue una combinación de mi impaciencia y mi comportamiento grep y nc. Usando el siguiente comando en mi Raspberry Pi,
nc -nvw1 127.0.0.1 1-65535 2>&1 | grep succeeded | tee test.txt
Se escanearon todos los puertos, ~luego~ la consola imprimió 6 puertos abiertos. Cuando utilicé la opción --line-buffered, el comando se comportó como esperaba (imprimiendo como se encontró).
Además, el comportamiento de almacenamiento en búfer de grep aparentemente ocurre solo cuando se conecta al tee. Cuando no se usa tee y no se usa --line-buffered, grep aún imprime los puertos abiertos tal como se encuentran.
Sin la opción -w1, grep imprime el primer puerto abierto en la consola, pero luego la salida se bloquea; en realidad, es la salida de nc la que se bloquea en este caso.