Вы можете сделать это (если я понимаю проблему), используя bash «процесс подстановки», например, рассмотрите следующие примеры данных:
$ cal -h
September 2013
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Тогда выборочные строки могут быть grep
d для разных выходных файлов в одной команде как:
$ cal -h \
| tee >( egrep '1' > f1.txt ) \
| tee >( egrep '2' > f2.txt ) \
| tee >( egrep 'Sept' > f3.txt )
В этом случае каждый grep
обрабатывает весь поток данных (что может или не может быть тем, что вы хотите: это может не сэкономить много времени по сравнению с просто выполнением одновременных grep
процессов):
$ more f?.txt
::::::::::::::
f1.txt
::::::::::::::
September 2013
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
::::::::::::::
f2.txt
::::::::::::::
September 2013
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
::::::::::::::
f3.txt
::::::::::::::
September 2013