Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux中使用regex重命名文件_Linux - Fatal编程技术网

在linux中使用regex重命名文件

在linux中使用regex重命名文件,linux,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 因此,理想情况下,我希望得到

您好,我需要更改文件夹中的这些文件名:

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][A-Z][1-9][1-9]\).$/\$1/g'*.fastq.gz
\(…)
搜索括号,但不捕获其内容

我认为有三个街区需要抓获,因此我建议如下:

rename 's/^.*(AAA.{6}).*(_R.).*(\.fastq.gz)/$1$2$3/' *.fastq.gz
第一块:
AAA
后跟六个字符

第二块:
\R
后跟一个字符

第三块:扩展名
.fastq.gz