Перенаправление двух файлов на стандартный ввод

Существует несколько команд unix, которые предназначены для работы с двумя файлами. Обычно такие команды позволяют читать содержимое одного из «файлов» со стандартного ввода, используя одно тире вместо имени файла.

Я только что наткнулся на метод , который, кажется, позволяет оба файла должны быть прочитаны со стандартного ввода:

comm -12 <(sort file1) <(sort file2)

Моя первая реакция недоверия была: «Этого не должно быть» т работать. Стандартный ввод будет просто конкатенацией обоих файлов. Команда не сможет отличить файлы друг от друга или даже понять, что ей дано содержимое двух файлов. "

Конечно, эта конструкция работает. Я тестировал ее с обоими comm и diff с использованием bash 3.2.51 на cygwin 1.7.7. Мне любопытно, как и почему это работает:

  • Почему это работает?
  • Это расширение Bash или эта прямая функциональность оболочки Борна?
  • Это работает в моей системе, но будет ли этот метод работать на других платформах? (Другими словами, будут ли сценарии, написанные с использованием этого метода, переноситься?)

14
задан Bobby Eickhoff 19 January 2011 в 16:22
поделиться