Как может я обрабатывать в пакетном режиме переименовать файлы с терминалом

Если у меня есть ряд файлов как:

1-3-Image Export-08_s3c1.jpg

и я хотел бы переименовать первую часть, чтобы выглядеть примерно так, путем добавления и замены первого расстаются с 'G2_NR2_replicate2':

G2_NR2_replicate2_s3c1.jpg

Как был бы я пакетная обработка это в терминале?

1
задан 5 June 2014 в 23:10

2 ответа

Работайте ниже rename управляйте в каталоге где весь .jpg файлы расположены,

rename 's/^[^_]*(.*)$/G2_NR2_replicate2\1/' *.jpg

Это переименовывает все файлы, которые находятся в формате (имя),

1-3-Image Export-08_s3c1.jpg
1-3-Image Export-08_s3c2.jpg
......
1-3-Image Export-08_s3c1000.jpg

кому:

G2_NR2_replicate2_s3c1.jpg
G2_NR2_replicate2_s3c2.jpg
.....
G2_NR2_replicate2_s3c1000.jpg

Объяснение:

's/^[^_]*(.*)$/G2_NR2_replicate2\1/'

  1. rename управляйте работами то же как sed команда. (s/pattern/replace/)

  2. В части шаблона мы даем шаблон как ^[^_]*(.*)$

    • ^ -> начальная точка

    • [^_]* -> Соответствует любому символу кроме _ нуль или больше раз. Таким образом, это соответствует до 1-3-Image Export-08 и символ whaterver (s3c1) прибывает после этой части пойманы и сохранил его в группу, которая была представлена этим шаблоном (.*)$.

    • Теперь в сменной детали, мы помещаем текст, данный op (G2_NR2_replicate2) плюс пойманная группа.

  3. Наконец rename команда выполняет целую операцию.

4
ответ дан 3 December 2019 в 07:08

Править: @Avinash ответ Raj лучше. Используйте rename управляйте вместо этого как показано.

Попытайтесь использовать sed вместе с for. См.: http://www.linuxquestions.org/questions/linux-general-1/bash-bulk-rename-files-4175429502/#post4792222

0
ответ дан 3 December 2019 в 07:08

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

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