重命名文件(删除一些不总是相同的字符)

重命名文件(删除一些不总是相同的字符)

我有一些这样命名的文件:

DA1_ATGCATG_L001_R1.fastq.gz
Oeu43_TCATGAC_L004_R2.fastq.gz

我想删除第一个“_”之后的部分,但保留“_R”中名称的末尾以获得此:

DA1_R1.fastq.gz
Oeu43_R2.fastq.gz

我怎样才能做到这一点?

答案1

bash或 POSIX中sh

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

答案2

zsh

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

答案3

使用perl renameprename在Ubuntu中命名)

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

相关内容