Если вы просто пытаетесь упростить ввод длинных имен файлов в командной строке, в bash вы можете использовать клавишу tab , чтобы упростить ввод.например, введите начало команды, например, mv L
, а затем нажмите клавишу tab , и оно автоматически завершится автоматически до того момента, когда имена будут неоднозначными (например, вплоть до номеров страниц).Автозаполнение делает ввод этих имен действительно простым.
Если вы хотите переименовать группу файлов, обычным трюком является
использование ls
для получения спискасоответствующих файлов и используйте sed
для создания сценария для переименования этих файлов, например:
$ ls L* | sed 's/^[^0-9]*\([0-9]*\)--\([0-9]*\)).pdf/mv "&" Pages\1-\2.pdf/'
, который ищет строку символов, которые не являются цифрами, затем захватывает цифры до и после --
и затем выводит строку mv
, за которой следует оригинальное имя, за которым следует новое имя, включающее номера страниц.Я знаю, что это немного волосато, но это сила регулярных выражений.И на самом деле это еще не делает переименование, а скорее создает команды, которые могут выполнять переименование, если вы решите это сделать.
В любом случае, это приводит к выводу текста, например:
mv "Lógica_matemática_para_ingeniería_de_sistemas_y_co..._----_(Pg_103--122).pdf" Pages103-122.pdf
mv "Lógica_matemática_para_ingeniería_de_sistemas_y_co..._----_(Pg_123--155).pdf" Pages123-155.pdf
mv "Lógica_matemática_para_ingeniería_de_sistemas_y_co..._----_(Pg_81--102).pdf" Pages81-102.pdf
Вы можете google sed
учебники / примеры, если вы хотите выяснить широкий спектр доступных альтернатив.И, если это действительно сложно, есть альтернативы, включая awk
и / или сценарии оболочки.
В любом случае, как только вы визуально осмотрите его и решите, что сгенерированные команды mv
выглядят хорошоВы можете повторить процесс, на этот раз передавая вывод в sh
, чтобы фактически выполнить переименование:
$ ls L* | sed 's/^[^0-9]*\([0-9]*\)--\([0-9]*\)).pdf/mv "&" Pages\1-\2.pdf/' | sh
Существуют другие утилиты переименования файлов, которые можно установить, но старые-школы Unix обычно получают sed
, которые делают процесс за нас.