Прежде всего, head
принимает более одного имени файла, поэтому вы можете просто написать:
head -q -n 1 *.log
или:
find . -name '*.log' -exec head -n 1 '{}' ';'
Однако, если вы действительно нужно продублировать поток, затем использовать tee
и сделать что-то вроде:
wget -O - http://example.com/dvd.iso | tee >(sha1sum > dvd.sha1) > dvd.iso
Этот пример взят из info coreutils 'tee invocation'
.
ОБНОВЛЕНИЕ (после комментария ade
) В вашем случае tee
не будет работать.Вам нужно выполнить задачу после завершения другой задачи, и tee
будет запускать задачи более или менее одновременно (буферизация по модулю).
Другой подход будет работать, , при условии, что встроки ввода (серьезная проблема, я знаю, но я не знаю, как ее преодолеть прямо сейчас).Я начну с общего решения:
echo -e 'Foo\nBar\nBaz' | ( for i in `cat` ; do echo 1$i ; echo 2$i ; done )
Здесь echo -e 'Foo\nBar\nBaz'
создает пример многострочного ввода, echo 1$i
- первая команда для запуска, echo 2$i
- вторая команда для запуска.
Я не знаком с ade
, и у меня его не установлено в моей системе, но я предполагаю, что в вашем случае что-то подобное может работать:
ade describetrans | awk '/myapps/{ print $2 }' | sort -fr | ( for i in `cat` ; do ade unbranch $i ; ade checkin -all $i ; done )