我不知道为什么这个循环不能按照我需要的方式连接文件。基本上,假设我们有以下文件:
AB124661.lane3.R1.fastq.gz
AB124661.lane4.R1.fastq.gz
AB124661.lane3.R2.fastq.gz
AB124661.lane4.R2.fastq.gz
我们想要的是:
cat AB124661.lane3.R1.fastq.gz AB124661.lane4.R1.fastq.gz > AB124661.R1.fastq.gz
cat AB124661.lane3.R2.fastq.gz AB124661.lane4.R2.fastq.gz > AB124661.R2.fastq.gz
我尝试过(但没有成功):
1.创建文件名(AB 124661)并将其保存到ID文件:
第一个字符串|awk -F '.' '{打印$1}'|分类器|唯一性〉ID
这将创建一个存储样本/文件名的ID文件。
1.运行以下循环:
for i in `cat ./ID`; do cat $i\.lane3.R1.fastq.gz $i\.lane4.R1.fastq.gz \> out/$i\.R1.fastq.gz; done
for i in `cat ./ID`; do cat $i\.lane3.R2.fastq.gz $i\.lane4.R2.fastq.gz \> out/$i\.R2.fastq.gz; done
循环失败并连接到空文件中。
我尝试过的事情:
- 是,ID文件肯定在文件夹中
- 当我运行echo时,它显示cat命令正确
任何帮助都将不胜感激,
最好的,
交流
3条答案
按热度按时间q3aa05251#
1.为什么要转义
\>
?这将导致cat: '>': No such file or directory
而不是重定向。for
8fq7wneg2#
假设您有id存储在文件中每行./ID
vsmadaxz3#
纯壳解决方案可能如下所示:
或者:
此解决方案假定感兴趣的文件名不包含换行符。