Я хочу использовать pdfunite для объединения нескольких pdf-файлов в один выходной файл. Поскольку каталог содержит много разных вещей, я подумал, что мог бы использовать ls/grep, чтобы получить подходящие имена файлов, а затем использовать pdfunite, чтобы собрать его вместе. Вывод ls/grep выглядит следующим образом:

ls | grep "handout...pdf" 
handout01.pdf*
handout02.pdf*
handout03.pdf*
handout04.pdf*
handout05.pdf*
handout06.pdf*

Затем я хочу вызвать pdfunit, который имеет следующий синтаксис:

 pdfunite [options] PDF-sourcefile1..PDF-sourcefilen PDF-destfile

Моя проблема в том, что не похоже, что я могу перенаправить вывод ls/grep в pdfunite, потому что он не должен так работать. С другой стороны, если я попытаюсь:

pdfunite ls | grep "handout...pdf" grep.pdf

тогда grep явно жалуется на мой выбранный выходной файл:

grep: grep.pdf: No such file or directory

Я знаю, что мог бы сделать два отдельных шага, и тогда это сработало бы, но я хотел бы выяснить, как это сделать с помощью одной строки.

3 ответа3

2

Если ваши шаблоны файлов настолько просты, вам не нужно регулярное выражение, и вы можете использовать простой шаблон:

pdfunite handout??.pdf

В противном случае, вы можете использовать регулярное выражение с помощью команды find и -regex, но я не мог найти способ , чтобы выполнить его , что не имеет возможности расщепления на несколько групп файлов. Некоторые способы, которыми вы могли бы это сделать, также зависят от того, что в именах файлов нет пробелов.

1

я считаю, что для этого можно использовать символ "галочка" (вещь над тильдой). Попробуйте что-то вроде этого:

pdfunite [options] `ls | grep "handout...pdf"`

Из того, что я понимаю, вы так вкладываете команду. Все, что находится внутри тиков, выполняется как его собственная команда, а выходные данные заменяют тики. Таким образом, приведенная выше команда будет по существу приравнена к

pdfunite [options] handout01.pdf* handout02.pdf* ...
0

Вам не обязательно нужен grep. Вы можете передать шаблон для ls .

pdfunite $(ls handout*.pdf*) merged.pdf

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .