2016-05-09 2 views
2

Я знаю, что в Linux я могу это сделать:Есть ли способ группировать параметры в команду в Linux?

$> cat file.txt > total.txt 

, и я понимаю, что следующее одно и то же:

$> cat <file.txt> total.txt 

, как кошки в основном копирует все, в стандартный ввод в стандартный вывод

, поэтому мне было интересно узнать следующее:

$> cat file1.txt file2.txt > total.txt 

может быть сделано таким образом:

$> cat < file1.txt file2.txt > total.txt 

, но оказывается, что только file1.txt перенаправляется в кошки так есть путь «как круглые скобки» в группе параметров кошки или любой другой команды ?? как в:

$> cat < (file1.txt file2.txt) > total.txt 
+4

'cat <(cat file1 file2)' это единственное, что я могу придумать. Но, конечно, это бесполезно. – fedorqui

+2

Зачем вам это делать? – 123

+0

Поскольку кошка копирует все в stdin в stdout , я хотел бы думать об этом как о таком только, не имея необходимости запоминать его другое использование, которое является cat file1 file2 ... , имеющее единый абстрактный образ и способ соответствия шаблону команды очень важно так базируется на концепции, что кошка копирует все, что в стандартный ввод в стандартный вывод я хочу использовать: кот file1 file2> общий таким образом: кот <файл> общий – Pulsar

ответ

0

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

cat file1.txt file2.txt file3.txt | wc -l 

Скажем у вас есть какая-то утилита, которая знает только, как читать файлы, но не работает со стандартным вводом. Вы можете сделать что-то вроде этого:

not-stdin-smart-util <(cat file1.txt file2.txt file3.txt) 

В этом случае cat может быть заменен все, что производит стандартный вывод, используя файлы или нет. Как отмечалось в комментарии, этот метод имеет ограничения на операции поиска. Он также не работает, если утилита считывает файл с mmap().

+0

Если он принимает файлы, вы всегда можете, я не знаю, попробую просто передать файлы в программу ... – 123

+0

@ 123 Результаты не обязательно будут одинаковыми. –

+1

Пример '<(...)' также работает только в том случае, если 'not-stdin-smart-util' не нужно искать назад на своем входе. – chepner

0

Если есть только текстовые файлы

кошка * .txt> output_file

каких-либо ограничений с помощью этого? Или я ошибаюсь?

+0

, который работает только в том случае, если вы хотите объединить ВСЕ файлы в каталоге или в лучшем случае, если все файлы, которые вы хотите объединить, имеют сходство имен – Pulsar

+1

Не нужно. В bash мы можем сделать это: shopt -s extglob и затем предоставить любые команды исключения – Sri

Смежные вопросы