Как перемещать числа в именах файлов в операции переименования пакетов?

Я пытался выяснить, как переименовать файлы за последние несколько часов.

У меня есть 2000 файлов, которые бы вот так:

file.1.pdb file.2.pdb file.3.pdb

Я хотел бы переименовать эти файлы в нечто вроде:

file.pdb.1 file.pdb.2 file.pdb.3
10
задан 30 March 2018 в 00:36

12 ответов

Вы можете использовать этот скрипт:

for i in `seq 1 2000`; do mv file.$i.pdb file.pdb.$i done

Или эту дружественную команду для копирования-вставки:

for i in `seq 1 2000`; do mv file.$i.pdb file.pdb.$i; done

Для использования вышеприведенных команд поместите все 2000 файлов в одну папку и затем откройте терминал в этом каталоге, а затем запустите над ним команду.

7
ответ дан 17 July 2018 в 17:50

Если вы установили rename, вы можете использовать

rename -n 's/(\.\d+)\.pdb$/.pdb$1/' *.pdb # just watch what WOULD happen rename 's/(\.\d+)\.pdb$/.pdb$1/' *.pdb # actually rename the files

Команда rename может быть установлена ​​через

sudo apt install rename
15
ответ дан 17 July 2018 в 17:50

Недавно nautilus, файловый менеджер по умолчанию, получил диалоговое окно переименования. Это еще недостаточно, чтобы делать то, что вы хотите. Но, к счастью, есть тунар, альтернативный файловый менеджер, который можно установить. С помощью диалога переименования thunars вы можете делать то, что хотите, используя GUI.

Сначала установите thunar:

sudo apt install thunar

Запустите thunar, перейдите в каталог, в котором есть ваши файлы. Затем выберите все из них. Нажмите F2.

В открывшемся диалоговом окне выберите все файлы. Измените режим на «Поиск и замена» и на «Имя и суффикс». Проверьте «Регулярное выражение». Теперь используйте следующие шаблоны поиска и замены:

file\.(.+)\.pdb

и

file.pdb.$1

Наконец нажмите кнопку переименования.

Преимущество этого способа что вы получите визуальный предварительный просмотр того, что произойдет до фактического переименования.

5
ответ дан 17 July 2018 в 17:50

Вы можете использовать rename из util-linux для этого (команда называется rename.ul в ubuntu):

rename.ul .pdb '' * rename.ul "file." "file.pdb." *

Это сначала удаляет расширение .pdb с конца, а затем повторно вставляет его в середину.

3
ответ дан 17 July 2018 в 17:50

Использование Perl rename:

rename -n 's/(\.\d+)(\.pdb)/$2$1/' *.pdb

Краткое пояснение:

*.pdb Сопоставьте все файлы, которые заканчиваются на .pdb. (Выполнено оболочкой) (\.\d+) Сопоставьте буквальную точку, затем одну или несколько десятичных цифр. Parens создают группу соответствия. $2$1 Переверните первую и вторую группы соответствия. -n Нет действий (имитировать). Если выход выглядит хорошо, снова запустите команду без этого флага.
10
ответ дан 17 July 2018 в 17:50

Через mmv (переименовать несколько файлов с помощью шаблонов подстановок) это легко:

mmv '*.*.*' '#1.#3.#2' *.pdb

или zmv оболочки zsh; это модуль, который позволяет выполнять переименование; см. mmv :

zmv -w '*.*.*' '$1.$3.$2' *.pdb
11
ответ дан 17 July 2018 в 17:50

Вы можете использовать этот скрипт:

for i in `seq 1 2000`; do mv file.$i.pdb file.pdb.$i done

Или эту дружественную команду для копирования-вставки:

for i in `seq 1 2000`; do mv file.$i.pdb file.pdb.$i; done

Для использования вышеприведенных команд поместите все 2000 файлов в одну папку и затем откройте терминал в этом каталоге, а затем запустите над ним команду.

7
ответ дан 23 July 2018 в 18:42

Если вы установили rename, вы можете использовать

rename -n 's/(\.\d+)\.pdb$/.pdb$1/' *.pdb # just watch what WOULD happen rename 's/(\.\d+)\.pdb$/.pdb$1/' *.pdb # actually rename the files

Команда rename может быть установлена ​​через

sudo apt install rename
15
ответ дан 23 July 2018 в 18:42

Недавно nautilus, файловый менеджер по умолчанию, получил диалоговое окно переименования. Это еще недостаточно, чтобы делать то, что вы хотите. Но, к счастью, есть тунар, альтернативный файловый менеджер, который можно установить. С помощью диалога переименования thunars вы можете делать то, что хотите, используя GUI.

Сначала установите thunar:

sudo apt install thunar

Запустите thunar, перейдите в каталог, в котором есть ваши файлы. Затем выберите все из них. Нажмите F2.

В открывшемся диалоговом окне выберите все файлы. Измените режим на «Поиск и замена» и на «Имя и суффикс». Проверьте «Регулярное выражение». Теперь используйте следующие шаблоны поиска и замены:

file\.(.+)\.pdb

и

file.pdb.$1

Наконец нажмите кнопку переименования.

Преимущество этого способа что вы получите визуальный предварительный просмотр того, что произойдет до фактического переименования.

5
ответ дан 23 July 2018 в 18:42
  • 1
    Вы можете заставить большинство программ печатать английские сообщения, префиксная команда с помощью LC_MESSAGES=POSIX, e. г. [F2]. Работает одинаково для графических приложений, хотя в случае постоянных приложений, таких как Nautilus в конфигурации по умолчанию, вам нужно сначала завершить предыдущий экземпляр с помощью nautilus -q. – David Foerster 30 March 2018 в 19:00
  • 2
    @DavidFoerster благодарит за упоминание, изображение заменено. – Sebastian Stark 31 March 2018 в 01:50

Вы можете использовать rename из util-linux для этого (команда называется rename.ul в ubuntu):

rename.ul .pdb '' * rename.ul "file." "file.pdb." *

Это сначала удаляет расширение .pdb с конца, а затем повторно вставляет его в середину.

3
ответ дан 23 July 2018 в 18:42
  • 1
    Довольно круто. Я не знал о rename.ul. Синтаксис немного, но неожиданно, но он действительно работает так, как вы рекламируете. Плюс: он также имеет переключатель -n (не трогайте, просто скажите). – PerlDuck 29 March 2018 в 20:40

Использование Perl rename:

rename -n 's/(\.\d+)(\.pdb)/$2$1/' *.pdb

Краткое пояснение:

*.pdb Сопоставьте все файлы, которые заканчиваются на .pdb. (Выполнено оболочкой) (\.\d+) Сопоставьте буквальную точку, затем одну или несколько десятичных цифр. Parens создают группу соответствия. $2$1 Переверните первую и вторую группы соответствия. -n Нет действий (имитировать). Если выход выглядит хорошо, снова запустите команду без этого флага.
10
ответ дан 23 July 2018 в 18:42
  • 1
    ЛОЛ. Та же мысль. Вы были на 48 секунд быстрее. – PerlDuck 29 March 2018 в 19:02
  • 2
    @PerlDuck Lol, да, такая же мысль. Ответы также очень хорошо дополняют: вы занимаетесь установкой, я использую синтаксис. – wjandrea 29 March 2018 в 19:04
  • 3
    @wjandrea ВСЕГДА запускайте переименование с -n первым. – Calimo 30 March 2018 в 11:59
  • 4
    @Calimo Хорошая точка. Отредактировано, чтобы добавить это. – wjandrea 31 March 2018 в 00:13

Через mmv (переименовать несколько файлов с помощью шаблонов подстановок) это легко:

mmv '*.*.*' '#1.#3.#2' *.pdb

или zmv оболочки zsh; это модуль, который позволяет выполнять переименование; см. mmv :

zmv -w '*.*.*' '$1.$3.$2' *.pdb
11
ответ дан 23 July 2018 в 18:42
  • 1
    И mmv, и zmv кажутся мне довольно экзотическими. Не возражаете ли вы немного разобраться, что это такое и что они делают? – PerlDuck 29 March 2018 в 21:10
  • 2
    Я добавил ссылки на их manpage и примеры. – αғsнιη 29 March 2018 в 21:36
  • 3
    mmv довольно круто. Кажется, лучше подходит для такого переименования, чем rename, хотя и менее гибко в плане сопоставления имен. – JAB 30 March 2018 в 23:11

Другие вопросы по тегам:

Похожие вопросы: