我是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个文件的串联
感谢您的帮助
答案 0 :(得分:0)
如果我正确理解了这个问题,你可以使用for循环。
您可以在子shell中使用seq来填充数字。
for i in $(seq -f "%02g" 1 39);do cat *-"$i"-*_*_R1.fastq > "$i"_R1.fastq ;done