Não tenho certeza de como você chegou à conclusão de que o grep não imprime sua saída no stdout, isso é apenas incorreto.
Eu sugiro que você teste isso adicionando uma etapa do pipeline de cada vez para ver onde os problemas ocorrem.
Você primeiro descobrirá que seu comando echo literalmente imprime \r\n
no final (você pode querer echo -e
) e que seu comando grep não imprime nada (porque seu padrão não corresponde realmente).
No entanto, se você corrigir o padrão ( grep -e "[0-9]\{4\}"
ou grep -E "[0-9]{4}"
), você verá que ele imprime a linha inteira para todas as linhas correspondentes, não apenas a parte correspondente (você pode querer grep -o
).
Algo parecido com isso parece ser um começo mais razoável de seu pipeline:
echo -e "TEST 1234\r\n" | grep -o -e "[0-9]\{4\}"
Você deve continuar a partir daí (no entanto, sugiro considerar o uso de nc
em vez de telnet
).