删除文件名的中间名

时间:2017-03-29 20:48:34

标签: regex linux rename

我希望删除看起来如下的文件名中间:

Wm-no-Bis.GAGATTCC-ATAGAGGC.L001.R1.001.fastq.trim.R2.fastq
Pek-no-Bis.GAGATTCC-AGGCGAAG.L001.R1.001.fastq.trim.R1.fastq

获取

Wm-no-Bis.trim.R2.fastq
Pek-no-Bis.trim.R1.fastq

正如您所看到的,文件的开头和结尾略有变化。 我试图按如下方式使用重命名:

rename 's/.*.*.*.*.*.trim.//g'
Wm-no-Bis.GAGATTCC-ATAGAGGC.L001.R1.001.fastq.trim.R2copy.fastq

除了结尾之外,这将删除整个文件名。 问题显然是我对如何使用通配符缺乏了解。

2 个答案:

答案 0 :(得分:0)

rename 's/\.\w+-\w+\..{4}\.R.\.\d{3}\.fastq//g'

source

答案 1 :(得分:0)

您可以使用此rename命令:

rename -n 's/^([^.]+).*(\.trim\..*)$/$1$2/' *.fastq

如果您对输出感到满意,请删除-n选项(干运行)