您好,我需要更改文件夹中的这些文件名:
dingo__AAA311P02_2845__L7_ACTTGA_L007_R1_001.fastq.gz
lala_bros__AAA000M11_3289__L2_ACTGAT_L002_R2_001.fastq.gz
nice__AAA827M10_2860__L7_ACTGAT_L007_R2_001.fastq.gz
我需要保留 AAA*****(例如 AAA255P02),并保留 R1 或 R2 以及扩展名 fastq.gz
所以理想情况下我想得到这些:
AAA311P02_R1.fastq.gz
AAA000M11_R2.fastq.gz
AAA827M10_R2.fastq.gz
我尝试使用
rename 's/^.*\(AAA[1-9][1-9][1-9][A-Z][1-9][1-9]\).*$/\$1/g' *.fastq.gz
最佳答案
\(...\)
搜索括号但不捕获其内容。
我看到需要捕获三个 block ,因此我提出以下建议:
rename 's/^.*(AAA.{6}).*(_R.).*(\.fastq.gz)/$1$2$3/' *.fastq.gz
第一个 block :AAA
后跟六个字符。
第二个 block :_R
后跟一个字符。
第三 block :扩展名.fastq.gz
关于linux - 在Linux中使用正则表达式重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30007226/