将多个文件连接成文件组

时间:2016-04-12 07:28:37

标签: bash

我是BASH脚本的新手,需要一些帮助。

我正在尝试将312个文件连接成39组文件,这些文件具有相当糟糕的文件名。一组文件系列如下:

  

C9F4BANXX-1959-01-21-01_L003_R1.fastq

     

C9F4BANXX-1959-01-21-01_L004_R1.fastq

     

C9F4BANXX-1959-01-21-01_L005_R1.fastq

     

C9F4BANXX-1959-01-21-01_L006_R1.fastq

连接这个组我使用以下(非常笨重我相信 - 但它确实有效):

cat *-01-*_*_R1.fastq > 01_R1.fastq

文件名称中的第3个字符串(粗体)不同,即

  

C9F4BANXX-1959- 01 -21-01_L003_R1.fastq

     

C9F4BANXX-1959-的 02 -21-01_L003_R1.fastq

我正在努力解决如何基于文件名中指示的位置设置循环以迭代每组4个文件的串联

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,你可以使用for循环。

您可以在子shell中使用seq来填充数字。

for i in $(seq -f "%02g" 1 39);do cat *-"$i"-*_*_R1.fastq > "$i"_R1.fastq ;done