Я пытаюсь переименовать группу файлов с изменяемым шаблоном, который нужно удалить.
У меня есть:
1B_ACTCGCTA-CCTAGAGT_L001_R1_001.fastq.gz
1B_ACTCGCTA-CCTAGAGT_L001_R2_001.fastq.gz
97C_TAAGGCGA-TTATGCGA_L001_R1_001.fastq.gz
97C_TAAGGCGA-TTATGCGA_L001_R2_001.fastq.gz
98A_S62_L001_R1_001.fastq.gz
98A_S62_L001_R2_001.fastq.gz
и я хочу получить:
1B_R1_001.fastq.gz
1B_R2_001.fastq.gz
97C_R1_001.fastq.gz
97C_R2_001.fastq.gz
98A_R1_001.fastq.gz
98A_R2_001.fastq.gz
Как вы можете видеть, шаблон, который нужно отбросить, является переменным и простое сопоставление не сработает.Логичным обходным решением было бы исключить все, что находится между первым и третьим подчеркиванием или первым подчеркиванием и буквой «R».К сожалению, я не могу придумать код, который бы это сделал.Это может быть что угодно, пока оно работает, переименовывать, использовать bash для цикла и т. Д. ...
Оцените вашу помощь, Deni
РЕДАКТИРОВАТЬ: я пытался использовать цикл for, ноне в состоянии придумать полный код для сохранения второй части имени файла (все, что следует за буквой «R»)
for file in *.fastq.gz; do echo mv "${file}" "${file/_*/\/}"; done