Если вы хотите выполнить команду
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
.
Если у вас много файлов, из-за которых вы столкнетесь с ограничением командной строки ОС, вам следует использовать 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.