Piping stdout de um comando para stdin de dois comandos em sh

0
O comando

tee [using > ()] não está funcionando porque não é suportado no sh (bourne shell).

O que estou tentando alcançar é enviar a saída de "ifconfig -a" para dois comandos diferentes.

Este é o meu comando (o que claramente não está certo):

 ifconfig -a | egrep -o '255\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]' | egrep -o 'ff[[:xdigit:]]{6}'

Eu tentei outras variantes deste comando, incluindo a possibilidade de usar tee, mas não parece funcionar, devido à incompatibilidade com sh. É necessário ficar com o nível mais baixo de construção e é por isso que estou tentando fazer isso funcionar.

Eu sei que na tubulação egrep -o '255. [0-9] {1,3}. [0-9] {1,3}. [0-9]' I não terá nada a não ser no piping egrep -o 'ff [[: xdigit:]] {6}' Eu vou buscar minha saída necessária (minha netmask; que é um bom regex para netmask), que é :

ff000000
fffff000

Espero que não dê nada no primeiro pipe e resulte no segundo pipe, mas para isso, ambos recebem o stdout de "ifconfig -a".

Espero receber ajuda. Estou usando o / bin / sh, no FreeBSD (10.1; Amazon EC2)

    
por Avineshwar 10.03.2016 / 05:12

1 resposta

1
ifconfig -a | egrep -o '255\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]|ff[[:xdigit:]]{6}'

Se você também precisar de resultados em um pedido específico, consulte sort

    
por 10.03.2016 / 05:58