Почему это не работает? “ls *.txt | xargs кошка> all.txt” (все файлы в единственный txt документ)

Почему это не работает?

ls *.txt | xargs cat > all.txt

(Я хочу присоединиться к содержанию всех текстовых файлов в единственный файл 'all.txt'.) находят с - должностное лицо должно также работать, но я действительно хотел бы понять xargs синтаксис.

Спасибо

20
задан 28.09.2010, 14:04

3 ответа

ls *.txt | xargs cat >> all.txt

мог бы работать немного лучше, так как это добавит к all.txt вместо того, чтобы создать его снова после каждого файла.

Между прочим, cat *.txt >all.txt также работал бы.:-)

27
ответ дан 07.12.2019, 10:11

Если некоторые Ваши имена файлов содержат', "или пространство xargs перестанет работать из-за проблемы разделителя

В целом никогда не работайте xargs без-0, когда это возвратится и укусит Вас однажды.

Рассмотрите использование Параллели GNU вместо этого:

ls *.txt | parallel cat > tmp/all.txt

или если Вы предпочитаете:

ls *.txt | parallel cat >> tmp/all.txt

Узнайте больше о Параллели GNU http://www.youtube.com/watch?v=OpaiGYxkSuQ

3
ответ дан 07.12.2019, 10:11

all.txt файл в том же каталоге, таким образом, кошка запутывается, когда это хочет записать от того же файла до того же файла.

С другой стороны:

ls *.txt | xargs cat > tmp/all.txt

Это будет читать из текстовых файлов в Вашем текущем каталоге в all.txt в подкаталоге (не включенный с *.txt).

1
ответ дан 07.12.2019, 10:11

Теги

Похожие вопросы