LINUX.ORG.RU

Считывание сначала из файла, а потом из stdin

 , ,


0

1

Здравствуйте! хотел бы узнать, возможно ли следующее в bash: например, у меня есть файл file, содержащий некоторый данные, и есть программа prog, работающая с данными, содержащимися в файле file; я могу, конечно, вызвать программу так: ‘prog < file’ — но возможно ли сделать так, что по окончании файла file stdin будет читать с консоли?


Решено!

Сам себе ответил, но всё же… Оказывается в cat есть замечательная возможность: если вызвать его так ‘cat file -’, то он сначала выведет file, потом будет считывать с stdin; таким образом, вызвать ‘cat file - | prog’, что позволит сначала программе читать из файла, а потом из stdin! Замечательно!

clever
() автор топика
Ответ на: Решено! от clever

Оказывается в cat есть замечательная возможность

Это общепринятый стандарт. Потому хорошим тоном будет, когда ваша prog будет тоже воспринимать аргументы как не только реальные файлы, но и '-' как /dev/stdin, который в принципе в bash встроен как файл для чтения из стандартного ввода. Но вы же не cat правите, а свою программу пишите, так что, что вы там у вас «решено» не cовсем понятно.

vodz ★★★★★
()

Более общее

Есть () и {} – можно сооружать что-то типа

(
zcat messages*.gz
cat messages
) | ...
DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.