Назад | Перейти на главную страницу

присоединиться к выводу xargs по новой строке

Я хочу присоединиться к выводу xargs вывод новыми строками. Я сделаю это:

find . -name '*.txt' | xargs -n 1 iconv -f UTF-16 | ...other-commands...

Я беру по одному файлу и конвертирую его в UTF-8 (системный языковой стандарт). Все из *.txt однострочные без символа новой строки в конце. Итак, на выходе xargs беспорядок текста.

Как вы разделяете элементы xargs вывод \n?

Вы можете попробовать:

find . -name '*.txt' | (xargs -n 1 iconv -f UTF-16; echo; ) | ...other-commands...

Это должно добавить новую строку после вывода xargs перед переходом к другим командам.

Уродливое решение:

find . -name '*.txt' | { xargs -n 1 -I_ bash -c 'iconv -f UTF-16 _;echo '; }| ...other-commands...

Используя GNU Parallel, вы могли бы:

find . -name '*.txt' | parallel -k "iconv -f UTF-16 {}; echo" | ...other-commands...

В качестве дополнительного бонуса iconvs будет работать параллельно.

Посмотрите вступительные видео, чтобы узнать больше: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1