Я хочу запустить 2 команды на входе в канал и хочу напечатать (на stdout) вывод обоих.Shell - Труба для нескольких команд в файле
Каждая команда представляет собой комбинацию grep, sed и awk.
Обе эти команды должны находиться в одном файле .sh.
Примеры команд:
cat mult_comm.sh
sed 's/World/Boy/g'|grep Boy ; grep World
# Input
cat input.log
Hello World
# This command HAS to work EXACTLY like this
cat input.log | bash mult_comm.sh
Ожидаемый выход
Hello Boy
Hello World
Фактический выход
Hello Boy
Я попытался с помощью тройника
cat mult_comm.sh
tee >(sed 's/World/Boy/g'|grep Boy) | grep World
Но это дает только
Hello World
Я могу изменить .sh файл, как я хочу, но водопроводная команда не может быть изменен. Есть идеи?
Это похоже на OS X/Linux: pipe into two processes? и Pipe output to two different commands, но я не могу понять, как использовать именованные каналы внутри скрипта.
ли это обман, чтобы сделать это только с СЭД? 'sed -n 'h; s/World/Boy/g;/Boy/p; x;/World/p'
pilcrow