#unix #pipe #stdin
#unix #передача #stdin
Вопрос:
Я хочу запустить команду, которая принимает два аргумента, которые могут быть либо путем к файлу, либо -
для чтения содержимого из stdin.
Пример:
convert file1.txt file2.txt
cat file1.txt | convert - file2.txt
cat file2.txt | convert file1.txt -
Все три команды приведут к одному и тому же результату.
Есть ли способ передать входные данные для обоих ее аргументов?
Причина, по которой я спрашиваю об этом, заключается в том, что я хочу избежать использования файловой системы для выполнения этой задачи.
Ответ №1:
Вы можете использовать замену процесса:
convert <(cat file1.txt) <(cat file2.txt)
Комментарии:
1. Как называется этот
<()
оператор или где я могу найти больше об этом?2. Это подстановка процесса. Я добавил ссылку на ответ
3. Большое вам спасибо! 🙏