вывод команды pipe для преобразования?

У меня есть zip-архив, сжатый в Linux (из командной строки ), и имена файлов с диакритическими знаками неправильно распаковываются в Windows, но я успешно распаковал его с помощью программы Bandizip , которая может установить кодировку на панель инструментов.

2
06.09.2019, 22:17
2 ответа

Если вы хотите выполнить команду

convert 'file(0).jpg' 'file(1).jpg'...etc... 'file(100).jpg' out.pdf

либо используйте свой глобус,

convert./*.jpg(n) out.pdf

или включить только файлы в диапазоне 0..100, которые соответствуют этому шаблону:

convert 'file('<0-100>').jpg'(n) out.pdf

или вы можете использовать фигурную скобку:

convert 'file('{0..100}').jpg' out.pdf

Хотя обратите внимание, что это не подстановка , строки с file(0).jpgпо file(100).jpgбудут переданы для преобразования независимо от того, являются ли они именами существующих файлов или нет. В отличие от предыдущего, например, он также пропустит файлы с именем file(012).jpg.

6
27.01.2020, 21:50

Если у вас много файлов, из-за которых вы столкнетесь с ограничением командной строки ОС, вам следует использовать convertфункцию @«ссылка на имя файла»:

generate the list of files... | convert @- out.pdf

В оболочке, которая не поддерживает *.jpg(n)подстановки, такие как zsh, вы можете сгенерировать список файлов в правильном порядке с помощью:

echo 'file('?').jpg' 'file('??').jpg' 'file('???').jpg' | convert @- out.pdf

Или с оболочкой, поддерживающей распорку:

echo 'file('{?,??,???}').jpg' | convert @- out.pdf

В отличие от {1..100}это будет соответствовать только существующим файлам. Поскольку echoявляется встроенным -в большинстве оболочек, на него не распространяются ограничения командной строки ОС, поэтому такая конструкция может превратиться в полезный UUoE.

4
27.01.2020, 21:50

Теги

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