小编the*_*ile的帖子

匹配文件名的正面和背面时的for循环

我正在尝试设置一个 for 循环来对成对的文件运行一个进程。文件名看起来像这样

36_002_CGATGT_L001_ R1 _005.fastq.gz
36_002_CGATGT_L001_ R2 _005.fastq.gz

36_002_CGATGT_L001_ R1 _002.fastq.gz
36_002_CGATGT_L001_ R2 _002.fastq.gz

62_013_AGTCAA_L001_ R1 _003.fastq.gz
62_013_AGTCAA_L001_ R2 _003.fastq.gz

我需要在以下命令中使用每一对

sickle pe -f 36_002_CGATGT_L001_R1_005.fastq.gz \
 -r 36_002_CGATGT_L001_R2_005.fastq.gz\
 -o trimmed_36_002_CGATGT_L001_R1_005.fastq.gz\
 -p trimmed_36_002_CGATGT_L001_R2_005.fastq.gz\
 -s 36_002_CGATGT_L001_singles_005.fastq.gz
Run Code Online (Sandbox Code Playgroud)

首先,我正在尝试:

for n in *R1*; do m='basename $n R2' ; echo $m; done
Run Code Online (Sandbox Code Playgroud)

但显然这种方法不起作用,因为文件名的正面和背面都很重要。我是否需要重命名文件,以便 R1 和 R2 是名称的最后一部分?这会很尴尬但并非不可能

command-line bash filenames bioinformatics

1
推荐指数
1
解决办法
729
查看次数

标签 统计

bash ×1

bioinformatics ×1

command-line ×1

filenames ×1