Существует несколько команд unix, которые предназначены для работы с двумя файлами. Обычно такие команды позволяют читать содержимое одного из «файлов» со стандартного ввода, используя одно тире вместо имени файла.
Я только что наткнулся на метод , который, кажется, позволяет оба файла должны быть прочитаны со стандартного ввода:
comm -12 <(sort file1) <(sort file2)
Моя первая реакция недоверия была: «Этого не должно быть» т работать. Стандартный ввод будет просто конкатенацией обоих файлов. Команда не сможет отличить файлы друг от друга или даже понять, что ей дано содержимое двух файлов. "
Конечно, эта конструкция работает. Я тестировал ее с обоими comm
и diff
с использованием bash 3.2.51 на cygwin 1.7.7. Мне любопытно, как и почему это работает: