Передача stdout из команды в stdin двух команд в sh
Команда tee [using >()] не работает, потому что она не поддерживается в sh (оболочка bourne).
То, чего я пытаюсь добиться, это посылать вывод "ifconfig -a" двум различным командам.
Это моя команда (что явно не правильно):
ifconfig -a | egrep -o '255\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]' | egrep -o 'ff[[:xdigit:]]{6}'
Я пробовал другие варианты этой команды, в том числе возможность использовать тройник, но, похоже, она не работает из-за несовместимости с sh. Необходимо придерживаться самого низкого уровня конструкции, и поэтому я пытаюсь заставить его работать.
Я знаю, что по трубопроводу egrep -o '255.[0-9]{1,3}.[0-9]{1,3}.[0-9]' Я получу только трубку egrep -o 'ff[[:xdigit:]]{6}' Я получу нужный вывод (моя маска сети; это хорошее регулярное выражение для маски сети), а именно:
ff000000
fffff000
Я ожидаю, что он ничего не даст на первом канале и даст результат на втором канале, но для этого у обоих есть стандартный вывод "ifconfig -a".
Я надеюсь получить некоторую помощь. Я использую / bin / sh, во FreeBSD (10.1; Amazon EC2)
1 ответ
ifconfig -a | egrep -o '255\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]|ff[[:xdigit:]]{6}'
Если вам также нужны результаты в определенном порядке, см. sort