URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7912
[ Назад ]

Исходное сообщение
"помогите с хитрым конвеером"

Отправлено evi9 , 20-Фев-09 11:52 
Есть конструкция:

(cat /tmp/foo ; echo "bar" ) | script.sh
в этом случае на stdin скрипта поступают вначале содержимое файла foo, а затем слово bar.

Как изменить данную конструкцию, чтобы вместо файла foo использовать вывод предыдущего в конвеере, чтобы было типа такого:

cat /tmp/foo| ( "?" ; echo "bar" ) | script.sh

Что вписать вместо вопроса?


Содержание

Сообщения в этом обсуждении
"помогите с хитрым конвеером"
Отправлено XoRe , 20-Фев-09 12:15 
echo `/tmp/foo` "bar" | script.sh

Если нужно что-то специфичное, можно посмотреть man echo


"помогите с хитрым конвеером"
Отправлено evi9 , 20-Фев-09 12:38 
>echo `/tmp/foo` "bar" | script.sh
>
>Если нужно что-то специфичное, можно посмотреть man echo

вы меня не поняли... echo тут не причем!!!


"помогите с хитрым конвеером"
Отправлено vic , 20-Фев-09 14:26 
>echo `/tmp/foo` "bar" | script.sh
>
>Если нужно что-то специфичное, можно посмотреть man echo

есть нюанс, echo имеет привычку заменять \n на пробел, так что на входе следующей утилиты в конвейере будет не совсем то :)


"помогите с хитрым конвеером"
Отправлено phpcoder , 20-Фев-09 12:43 
user-desktop% (echo 1; echo 2) | xargs
1 2
user-desktop% (echo 1 | tr 1 9; echo 2) | xargs
9 2

Я ответил на ваш вопрос?


"помогите с хитрым конвеером"
Отправлено vic , 20-Фев-09 14:22 
>Есть конструкция:
>(cat /tmp/foo ; echo "bar" ) | script.sh
>в этом случае на stdin скрипта поступают вначале содержимое файла foo, а
>затем слово bar.
>Как изменить данную конструкцию, чтобы вместо файла foo использовать вывод предыдущего в
>конвеере, чтобы было типа такого:
>cat /tmp/foo| ( "?" ; echo "bar" ) | script.sh
>Что вписать вместо вопроса?

cat /tmp/foo | ( cat ; echo "bar" ) | script.sh

ps:
если предыдущий в конвейере поддерживает поведение cat (последовательный вывод всех указанных файлов), то можно также пользоваться следующим приемом:
cat /tmp/foo <(echo "bar") | script.sh


"помогите с хитрым конвеером"
Отправлено Andrey Mitrofanov , 20-Фев-09 17:40 
>cat /tmp/foo | ( cat ; echo "bar" ) | script.sh

Ой, совсем слепой стал. То же самое написал.


"это вопрос с подвохом? викторина?"
Отправлено Andrey Mitrofanov , 20-Фев-09 17:38 
>cat /tmp/foo| ( "?" ; echo "bar" ) | script.sh
>
>Что вписать вместо вопроса?

cat

cat /tmp/foo |( cat ; echo "bar" ) | script.sh

А призы и подарки -- будут? :)


"это вопрос с подвохом? викторина?"
Отправлено evi9 , 22-Фев-09 14:51 
>>cat /tmp/foo| ( "?" ; echo "bar" ) | script.sh
>>
>>Что вписать вместо вопроса?
>
>cat
>
>cat /tmp/foo |( cat ; echo "bar" ) | script.sh
>
>А призы и подарки -- будут? :)

Спасибо, cat /tmp/foo |( cat ; echo "bar" ) | script.sh - это оно!!!