在中间组合基于类似ID的文件

时间:2018-04-30 17:46:49

标签: bash

01_002_H10_S190_L004_R1_001.fastq.gz
01_002_H10_S190_L008_R1_001.fastq.gz
01_002_H11_S191_L004_R1_001.fastq.gz
01_002_H11_S191_L008_R1_001.fastq.gz

我想合并到具有类似ID的文件和基于字母的两个数字 H10,H11 等。所有文件的ID都是1个字母,后跟数字。此外, H10,H11 之前的字符串始终为 01_002 _

我有一个bash脚本来组合文件,但不知道如何获取属于的两个文件(XXXX在我的skript下面。

declare -A ids for f in XXXXXXXX; do   ids[${f%%_*}]=1;done

01_002_H10.fastq.gz
01_002_H11.fastq.gz

1 个答案:

答案 0 :(得分:0)

这将返回由换行符分隔的所有名称:

find . -printf "%f\n" | egrep -o "^01_002_[A-Z0-9]+" | sort | uniq

您可以像这样整合它:

for f in $(find . -printf "%f\n" | egrep -o "^01_002_[A-Z0-9]+" | sort | uniq);