後,我有很多的文件,我需要用相同的前綴一起串聯。我有一個想法,但我不知道如何解決這個問題:如何使用uniq的printf的
文件:
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;
但這種方法不太好。我有兩個前綴。
謝謝你的幫助。
編輯:
一種解決方案由於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