プレフィックスに基づいてテキストファイルをリンクしますか?

プレフィックスに基づいてテキストファイルをリンクしますか?

ディレクトリには1088グループ(1088 x 9 = 9792)の9792ファイルがあり、各グループには一意のIDがあります。私が興味を持っているのは、グループIDとプレフィックスで一致するファイルのみを関連付けることです。

OG00 - 下に表示されるすべてのグループ/ファイルの接頭辞

example filenames (with prefix) -
OG000190,OG0012877,OG0012858 .... (1088)

OG0011984
OG0011984._1_1.txt.fa 
OG0011984._1_2.txt.fa 
...
OG0011984._1_9.txt.fa 

OG0011288
OG0011288._1_1.txt.fa
OG0011288._1_2.txt.fa
....
OG0011288._1_8.txt.fa
OG0011288._1_9.txt.fa

OG0011219
OG0011219._1_1.txt.fa
OG0011219._1_2.txt.fa 
.... 
OG0011219._1_9.txt.fa

これはcatを使用してグループごとに個別に実行できます。ループを使用してこのプロセスを自動化する方法。再現できなくて頑張りましたが役に立ちました。

     cat *OG0012884. > OG0012884_out.txt
        
        OG0012884._1_1.txt
        OG0012884._1_2.txt
        OG0012884._1_3.txt
        OG0012884._1_4.txt
        OG0012884._1_5.txt
        OG0012884._1_6.txt
        OG0012884._1_7.txt
        OG0012884._1_8.txt
        OG0012884._1_9.txt

ベストアンサー1

(テストされていない)次のことができるようです。

while IFS= read -r pfx; do
    cat "$pfx".* > "/some/other/directory/${pfx}_out.txt"
done < <(printf '%s\n' * | cut -d'.' -f1 | sort -u)

上記は、ファイル名に改行文字が含まれていないと仮定しています。

おすすめ記事