Как передать два входных сигнала в одну и ту же команду?

#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. Большое вам спасибо! 🙏