Самым простым инструментом здесь будет zsh (как bash, только лучше), с его причудливым globbing и zmv
функцией. Запустите ее из каталога верхнего уровня, в котором вы хотите переименовать файлы.
autoload -U zmv
zmv '(**/)[Ss][Ff][0-9]##-[0-9]##[- ]#(*)' '$1$2'
Объяснение: **/
- это любая строка ведущих каталогов. Затем идет шаблон sf
(без учета регистра), за которым следует одна или несколько цифр, тире и еще одна цифра, за которой следуют тире и пробелы. Наконец, может быть любой суффикс *
. Цифры в замене относятся к группам в скобках в шаблоне.
В качестве альтернативы вы можете использовать prename
(скрипт переименования на основе Perl, доступный в Debian и Arch Linux, в других дистрибутивах может потребоваться отдельная установка). Вам нужно будет объединить его с find
, чтобы собрать список файлов для переименования. Не имеет значения, если rename
переданы несовпадающие файлы, он пропустит файлы, для которых переименование не требуется.
find -name '[Ss][Ff]*' -exec prename 's!/!sf[0-9]+-[0-9]+[- ]*!!i' {} +
Zathura ( archwiki ) - это минималистичный просмотрщик документов (PDF / PS / Djvu / CB). Он может отображать документы из стандартного ввода.
cat foo.pdf | zathura -
Версия в моей системе временно сохраняет канал в / tmp, поэтому отображаемый документ доступен для поиска. После этого временный файл очищается и имеет достаточно безопасные разрешения, но это может быть проблемой безопасности.
$ ls -l /tmp/z*
-rw------- 1 user user 1640882 Mar 23 06:26 /tmp/zathura.stdin.97PFXY
Он доступен в стандартных репозиториях Arch, Debian и Ubuntu.