複数のファイルで特定の番号をフィルタリングする

複数のファイルで特定の番号をフィルタリングする

次のようないくつかのファイル(約150個)があります。

reconstructed_hap_4_Local_nt_haplo_freq_60.3 GGGCAACTGGGCCAAGGTCGCTATCATCATGGTTATGTTTTCAGGGGTCGATGCCAATACATATATCACCGGTGGCAAAGCAGCTCAAACTGCCAGAGGCCTTGTTGGCTGGTTTAATCCGGGTCCCAAACAGAACCTGCAGCTGGTCAACACCAATGGCTCGTGGCA
reconstructed_hap_6_Local_nt_haplo_freq_37.2 GGGCAACTGGGCCAAGGTCGCTATCATCATGGTTATGTTTTCAGGGGTCGATGCCGAAACATATGCCTCCGGTGGCAGTGCAGCTCGTAATACCTG-GGCCTTTCTAGCTTGTTTAGTTCGGGTCCCAAACAGAGCCTGCAGCTGGTCAACACCAATGGCTCGTGGCA
reconstructed_hap_1_Local_nt_haplo_freq_0.6 GGGCAACTGGGCCAAGGTCGCTATCATCATGGTTATGTTTTCAGGGGTCGATGCCAATACATATATCACCGGTGGCAAAGCAGCTCAAACTGCCAGAGGCCTTGTTTGGCTGTTTAATCCGGGTCCCAAACAGAACCTGCAGCTGGTCAACACCAATGGCTCGTGGCA

ファイルごとに行数が異なります。

"freq_"の後のヘッダー行で各ファイルの数をフィルタリングしたいと思います。

この例では、60.3、37.2、0.6をフィルタリングしたいと思います。

最も好ましい出力は、各サンプルの名前を含むCSVファイルでなければなりません。

Filename1   60.3    37.2    0.6 
Filename2   56.1    26.2    52.3    42.1
Filename3   2.5     1.2

あなたの解決策は何ですか?

ベストアンサー1

この試み、

cd /path/to/directory
for i in `ls`
do
        VALUE=`awk '{print $1}' $i | awk -F '_' '{print $NF}' | tr '\n' '\t'`
        echo -e "$i\t$VALUE" 
done

おすすめ記事