Переименуйте файлы (удалите некоторые символы, которые не всегда одинаковы)

У меня есть несколько файлов, названных так:

DA1_ATGCATG_L001_R1.fastq.gz Oeu43_TCATGAC_L004_R2.fastq.gz 

Я хочу удалить часть после первого «_», но сохранить имена из «_R», чтобы получить это:

 DA1_R1.fastq.gz Oeu43_R2.fastq.gz 

Как я могу это сделать?

В bash или POSIX sh :

 for file in *.fastq.gz; do mv -- "$file" "${file%%_*}_${file##*_}" done 

С zsh :

 autoload zmv # best in ~/.zshrc zmv '(*)_*(_R*)' '$1$2' 

Использование rename perl (названный prename в Ubuntu)

 prename 's/^([^_]*).*(_R.*)/$1$2/' *.fastq.gz