2015-05-02 70 views
0

您好我需要一個文件夾來更改這些文件名:在Linux中使用正則表達式重命名文件

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

回答

0

\(...\)搜索括號但不捕獲其內容。

我看到三個街區得到捕獲,所以我提出以下幾點建議:

rename 's/^.*(AAA.{6}).*(_R.).*(\.fastq.gz)/$1$2$3/' *.fastq.gz 

1號地塊:其次是六個字符AAA

第二個塊:_R後跟一個單個字符。

第3個分組:擴展.fastq.gz