Intereting Posts
скопировать файл драйвера в папку linux Как установить GRUB с двойной загрузкой в ​​режиме Legacy? Как мне grep второй последний или n-й последний символ из каждой строки файла В то время как проверка состояния JBoss в цикле вниз или нет, Можно ли приостановить контейнер LXC и перезагрузить хост без потери состояния? Как запустить систему, чтобы уничтожить все файлы по указанному паролю LVM? Извлечь количество отказов из отчета об испытаниях Не удается SSH после переключения на маршрутизатор Netgear Переменная окружения не сохраняется для JRE_HOME с sudoers Могут ли другие пользователи просмотреть аргументы, переданные команде? Воспроизведение флэш-анимации в замедленном режиме в Linux Редактор Vi работает во время редактирования Зарезервированные символы в именах файлов Есть ли идиоматическая переменная для исполняемого терминала в Linux? Субтитры «Растяжка» с помощью инструмента командной строки

Конвертировать PDF в JPG, сохраняя одно и то же имя; изменить размер и создать превью, а затем переименовать?

У меня много файлов pdf (3308), на которых я должен применить четыре шага:

1) Мне нужно преобразовать все в jpg

Я нашел этот маленький скрипт в Интернете с ImageMagick: пакетное преобразование pdf в jpg

Я хочу сделать это, но я сохраняю свои файлы такими же именами, как и раньше: foo.pdf => foo.jpg Также я хотел бы, чтобы все изображения сохранялись в папке в «сценах»,

2) Затем я должен изменить размер до 612×792

3) Затем мне нужно создать эскизы в 255х330

4) Наконец, я должен переименовать их. В самом деле, у меня есть файл csv в котором есть их имена и новые имена

Вот пример некоторых строк.
Каждая строка соответствует «фактическому имени» файла «запятая» «новое имя». Есть 3308 строк, по одному на файл

 current_name,new_name foo,bar PS130_1060,55-large 

Как вы можете видеть, расширения не отображаются, потому что два файла находятся в формате jpg .

Я полностью потерян, я не знаю, использовать ли 4 скрипта или если это возможно в одном скрипте. Я часто работаю на PHP, но я хотел немного изменить bash, но мне немного жарко.

Вы можете мне помочь?

Вы можете начать вот так:

 for i in "$@"; do dst="${i%pdf}jpg" convert "$i" -resize 612x792 "$dst" convert "$i" -resize 255x330 "${i%.pdf}_thump.jpg" done 

И назовите это

 $ bash my_script.sh *.pdf 

Для переименования вы можете использовать другой скрипт. Я не понимаю ваш пример .csv-файла. Есть ли 3 строки для 3-х файлов? Хорошо, это так.

Вы можете переименовать файл со следующей командной строкой:

 $ awk -F, '{ system("echo mv \"" $1 "\" \"" $2 "\"") }' myrename.csv 

Awk выполняет команду echo ... для каждой строки, $1 – это значение первого поля строки, а $2 – значение второго поля. Цитирование \" необходимо в случае, если имя файла содержит пробелы. -F, говорит awk использовать запятую в качестве разделителя полей.

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