私は、同じプレフィックスで連結する必要のあるファイルがたくさんあります。私はアイデアを持っているが、私はこの問題を解決する方法がわからない:printfの後でuniqを使う方法
ファイル:
NAME1_C001_xxx.tsv
NAME1_C001_yyy.tsv
NAME2_C001_xxx.tsv
NAME2_C001_yyy.tsv
私はちょうどuniqの接頭印刷したい - NAME1 and NAME2
を。接頭辞と接尾辞の文字列の長さは異なりますが、常に接頭辞の前_C001
私の解決策は次のとおりです。
fo i in *.tsv
do prexix=$(printf "%s\n" "${i%_C001*}")
cat $prefix_C001_xxx.tsv $prefix_C001_yyy.tsv > ${i%_C001*}.merged.tsv
done;
しかし、このソリューションは非常に良いではありません。私は各プレフィックスを2回持っています。
ありがとうございました。
EDITED:anubhavaに
一つの解決策のおかげ:
fo i in $(printf "%s\n" *.tsv | awk -F '_C001' '!seen[$1]++{print $1}')
do
cat $prefix_C001_xxx.tsv $prefix_C001_yyy.tsv > ${i%_C001*}.merged.tsv
done;
最終的なファイル名は何ですか? – Inian
は、接頭辞NAME1.merged.tsvにする必要があります。上記の私の例に似た何か。 – Paul