Я понимаю, как переименовать несколько использований файлов для циклов и такой, но я задавался вопросом, был ли способ переименовать всего два файла в использовании одной команды mv при сохранении определенных строк последовательными?
Например, если у меня есть два файла, что я хочу переименовать часть только:
txt_ID12123_R1_001_jan.txt
txt_ID12123_R2_001_jan.txt
И все, что я хочу сделать, переименовывают 'txt', но сохраняют другие строковые компоненты тем же:
exam_R1_001.txt
exam_R2_001.txt
Существует ли один лайнер, где можно использовать regex выражения для хранения определенных переменных последовательными? Строки R1 и R2 очень важны для хранения. Я попробовал изменения:
mv txt_1D12123_R[1,2]_001_jan.txt exam_R[1,2]_001.txt
Но это, очевидно, не работает. По существу целое имя файла является тем же за исключением R1 и R2, таким образом, я хотел сохранить те строки в такте и переименовать его соответственно. Я также попробовал {1,2}, но фигурная скобка не имела никакого значения. Просто задавшись вопросом - я только должен сделать это время от времени, настолько пишущий цикл для двух файлов казался глупым, и пишущий mv дважды не грандиозное предприятие, но я полагал, что должен быть некоторый короткий путь к нему.
Можно использовать команду mmv для переименования файлов
mmv '*txt_1D12123*' '#1exam#2'
Вы хотите заменить первое вхождение abc с xyz во всех файлах в текущем каталоге Обратите внимание на то, что в вышеупомянутом примере, я включил шаблоны в одинарные кавычки.
Установите rename
пакет,
sudo apt install rename
затем это просто (хорошо, если Вы довольны жемчугом):
rename 's/.*(_R[12]_\d+).*/exam${1}.txt/' txt*.txt
Для Переименования файлов с помощью regex Вас нуждаются rename
инструмент.
Установка переименовывает инструмент
sudo apt install rename
Затем выполненные follwing управляют для переименования всего наличия файлов .txt
расширение с шаблоном, который Вы указали т.е. exam_R1_R2.txt
rename 's/(\S)*_R(\d{1})_(\d+)_(\w{3})\.txt/exam_R$2_$3\.txt/' *.txt
Этим первым аргументом в одинарных кавычках является regex шаблон, который соответствует и занимает место с именем файла с соответствием группам, имеющим R1 и R2 и второй аргумент *.txt
обозначает наличие файлов .txt
расширение
Узнайте больше о regex здесь, и можно попробовать regex, тестирующий здесь