Поиск по этому блогу

четверг, 19 июля 2012 г.

Склеить PDF+Групповое переименование файлов

Склеить PDF+Групповое переименование файлов

Итак, допустим у нас есть какая-то папка где лежит много разных файлов, например фоток. Нам нужно переименовать все фотки в 1.JPG 2.JPG 3.JPG и т.д.
Для этого нам нужно сделать следующее:
$ cd /*папка назначения*
$ i= ; ls | while read; do mv "$REPLY" $((++i))".${REPLY//*.}"; done

Какой-то скрипт который был в коментах, надо будет изучить
#!/bin/sh
echo -n «Введите путь к каталогу с *.jpg: «; read path
cd $path
echo -n «Введите имя файла: «; read name
if [ "$name" = "" ]; then
ls | while read
do
mv -v «$REPLY» $((++i)).jpg
done
else
ls | while read
do
mv -v «$REPLY» «$name»"_»$((++i)).jpg
done
fi

Далее склеить PDF формат, из многих малых, сделать один большой
Склеить PDF
Временами приходится склеивать несколько одностраничных PDF в один большой PDF. Делается это с помощью программы gs из app-text/ghostscript-gpl:
$ gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf file1.pdf file2.pdf
Вот шаблон:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf 1.pdf 2.pdf 3.pdf 4.pdf 5.pdf 6.pdf 7.pdf 8.pdf 9.pdf 10.pdf 11.pdf 12.pdf 13.pdf 14.pdf 15.pdf 16.pdf 17.pdf 18.pdf 19.pdf 20.pdf 21.pdf 22.pdf 23.pdf 24.pdf 25.pdf 26.pdf 27.pdf 28.pdf 29.pdf 30.pdf 31.pdf 32.pdf 33.pdf 34.pdf 35.pdf 36.pdf 37.pdf 38.pdf 39.pdf 40.pdf 41.pdf 42.pdf 43.pdf 44.pdf 45.pdf 46.pdf 47.pdf 48.pdf 49.pdf 50.pdf 51.pdf 52.pdf 53.pdf 54.pdf 55.pdf 56.pdf 57.pdf 58.pdf 59.pdf 60.pdf 61.pdf 62.pdf 63.pdf 64.pdf 65.pdf 66.pdf 67.pdf 68.pdf 69.pdf 70.pdf 71.pdf 72.pdf 73.pdf 74.pdf 75.pdf

Инфа взята
http://www.nevedimko.ru/linux/linux-gruppovoe-pereimenovanie-fajlov.html
http://www.oper777.co.cc/2010/04/pdf_9603.html
Вот еще сцилко, все содержимое сливается в один файл
http://www.linux.org.ru/forum/general/5654661
Групповое переименование файлов в Linux
http://breys.ru/blog/338.html

Например в директории имеются файлы
§ Доктор Хаус/s04$ ls

House.M.D.s04e01.rus.lostfilm.tv.ogv House.M.D.s04e02.rus.lostfilm.tv.ogv House.M.D.s04e03.rus.lostfilm.tv.ogv House.M.D.s04e04.rus.lostfilm.tv.ogv
House.M.D.s04e05.rus.lostfilm.tv.ogv House.M.D.s04e06.rus.lostfilm.tv.ogv House.M.D.s04e07.rus.lostfilm.tv.ogv House.M.D.s04e08.rus.lostfilm.tv.ogv
House.M.D.s04e09.rus.lostfilm.tv.ogv House.M.D.s04e10.rus.lostfilm.tv.ogv House.M.D.s04e11.rus.lostfilm.tv.ogv House.M.D.s04e12.rus.lostfilm.tv.ogv
House.M.D.s04e13.rus.[tfile.ru].ogg House.M.D.s04e14.rus.[tfile.ru].ogg House.M.D.s04e15.rus.[tfile.ru].ogg House.M.D.s04e16.rus.[tfile.ru].ogg ¶

Задаём регулярное выражение подобное выражения sed, я хочу удалить всё начиная с суфикса rus и до конца строки, при этом заменить везде расширение на ogv, под эту задачу походит вот такое регулярное выражение
§ rename 's/rus.*/ogv/gi' House.M.D.s04e*
Доктор Хаус/s04$ ls
House.M.D.s04e01.ogv House.M.D.s04e04.ogv House.M.D.s04e07.ogv House.M.D.s04e10.ogv House.M.D.s04e13.ogv House.M.D.s04e16.ogv
House.M.D.s04e02.ogv House.M.D.s04e05.ogv House.M.D.s04e08.ogv House.M.D.s04e11.ogv House.M.D.s04e14.ogv
House.M.D.s04e03.ogv House.M.D.s04e06.ogv House.M.D.s04e09.ogv House.M.D.s04e12.ogv House.M.D.s04e15.ogv ¶

Вот и всё, одна команда и сколько угодно файлов обработано

Утилита rename работает так, находит в имени файлов, а список файлов задаётся последним параметром, подстроку в заданном регулярном выражении, в моём случае
§ House.M.D.s04e16.rus.[tfile.ru].ogg House.M.D.s04e01.rus.lostfilm.tv.ogv

жирным выделена часть соответвующая выражению, а затем преобразует её к заданному виду, в моём случае заменяет её на подстроку ogv

Для примера часто требуется убрать символы подчёркивания из имён накачанных файлов, делается это так
§ rename 's/_/ /gi' *.avi *.ogv

1 комментарий: