У меня есть много файлов, которые мне нужно объединить вместе с тем же префиксом. У меня есть идея, но я не знаю, как решить эту проблему:Как использовать 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;
Но это решение не очень хорошо. У меня есть каждый префикс дважды.
Благодарим за помощь.
EDITED:
Одно из решений благодаря анубхава:
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