编辑代码

#!/bin/bash
#echo "请输入您的样本命名:"
read -d '' inputs
#echo "您输入的样本是:"
#echo "$inputs"
samples=($inputs)

declare -A groups

echo "您输入的样本中input样本有:"
for sample in "${samples[@]}"; do
    if [[ $sample =~ input.(.*)_24[0-9][0-9][0-9][0-9] ]]; then
        group=${BASH_REMATCH[1]}
        groups["$group"]+="\n$sample"
        echo $sample
    else
        ungrouped+=("$sample")
    fi
done


for sample in "${ungrouped[@]}"; do
    matchinfo='0'
    for group in "${!groups[@]}"; do
        #echo -e "Group $group: ${groups[$group]}\n"
        if [[ $sample =~ "$group" ]]; then
            groups["$group"]+="\n$sample"
            matchinfo='1'
        fi
    done
    if [[ $matchinfo == '0' ]];then
        ungrouped1+=("$sample")
    fi
done


echo -e "\n分组结果为:"
for group in "${!groups[@]}"; do
    echo -e "Group $group: ${groups[$group]}\n"
done

echo -e "\n未匹配样本为:"
for ungrouped_sample in "${ungrouped1[@]}"; do
    echo "$ungrouped_sample"
done