Вы можете игнорировать некоторые файлы с помощью ls
--ignore
опции, а затем кошка их в файл.
ls --ignore="*_BASE_*" | xargs cat > all.txt
Кроме того, вы можете сделать это без xargs
:
cat $(ls --ignore="*_BASE_*") > all.txt
UPD: Дейл Hagglund заметил, что имя файла, как "Некоторые File" появится в виде двух имен файлов, "некоторые" и «Файл ». Чтобы избежать этого, вы можете использовать опцию --quoting-style=WORD
, когда WORD
может быть shell
или escape
.
Например, если --quoting-style=shell
Некоторые файлы будут печататься как «Некоторые файлы» и будут интерпретироваться как один файл.
Другая проблема - выходной файл может совпадать с одним из ls
ed файлов. Мы также должны игнорировать это.
Так Ответ:
outputFile=a.txt; ls --ignore="*sh*" --ignore="${outputFile}" --quoting-style=shell | xargs cat > ${outputFile}
Ни один из них не работает, если какой-либо из имен файлов содержит пробелы. Имя файла, например «Some File», будет отображаться в виде двух имен файлов «Some» и «File», когда передается 'cat'. –
Исправлен ответ –