Bash 将多个文件连接到文件组中
我对BASH脚本比较陌生,需要一些帮助 我试图将312个文件连接成39组文件,这些文件的文件名非常糟糕。一个组的文件系列如下所示: C9F4BANXX-1959-01-21-01\u L003\u R1.fastq C9F4BANXX-1959-01-21-01\u L004\u R1.fastq C9F4BANXX-1959-01-21-01\u L005\u R1.fastq C9F4BANXX-1959-01-21-01\u L006\u R1.fastq 为了连接此组,我使用以下方法(我确信非常笨拙-但它可以工作): 文件的名称(粗体)在第三个字符串中有所不同,即 C9F4BANXX-1959-01-21-01\u L003\u R1.fastq C9F4BANXX-1959-02-21-01\u L003\u R1.fastq 我正在努力弄清楚如何根据文件名中指示的位置设置循环,以迭代每组4个文件的连接Bash 将多个文件连接到文件组中,bash,Bash,我对BASH脚本比较陌生,需要一些帮助 我试图将312个文件连接成39组文件,这些文件的文件名非常糟糕。一个组的文件系列如下所示: C9F4BANXX-1959-01-21-01\u L003\u R1.fastq C9F4BANXX-1959-01-21-01\u L004\u R1.fastq C9F4BANXX-1959-01-21-01\u L005\u R1.fastq C9F4BANXX-1959-01-21-01\u L006\u R1.fastq 为了连接此组,我使用以下方法(我
感谢您的帮助如果我正确理解了问题,您可以使用for循环 您可以在子shell中使用seq来填充数字
for i in $(seq -f "%02g" 1 39);do cat *-"$i"-*_*_R1.fastq > "$i"_R1.fastq ;done
使用cat和通配符一点也不笨重,事实上,这可能是最有效的(合理的)方法。非常感谢-我努力将“for”循环的各个位放在一起,以便只在字符串的中心部分工作。刚刚探索了更多关于seq命令和您使用的格式的信息-非常酷!再次感谢-这是一个伟大的工具,用于我的其他工作
for i in $(seq -f "%02g" 1 39);do cat *-"$i"-*_*_R1.fastq > "$i"_R1.fastq ;done