您好我正在尝试组织我拥有的数据集。我很感激你的帮助!我的数据看起来像这样:
>abc1_1
apple
orange
>abc1_2
grape
melon
>abc2_4
tomato
celery
>abc2_5
carrot
cabbage
我想将所有具有相同前4个字母的标题的数据相加(即添加> abc1_1和> abc1_2并标题为> abc1),所以它看起来像这样:
>abc1
apple
orange
grape
melon
>abc2
tomato
celery
carrot
cabbage
请帮助我!
答案 0 :(得分:1)
这可能是你想要的,取决于你想要重复处理的方式:
$ awk -F_ '/^>/{key=$1; next} {data[key] = data[key] ORS $0} END{for (key in data) print key data[key]}' file
>abc1
apple
orange
grape
melon
>abc2
tomato
celery
carrot
cabbage
答案 1 :(得分:0)
如果您的所有文件都位于同一目录中,则此tcsh shell脚本:
foreach file ( `ls * | perl -pe 's/(....).*/$1/' | sort -u` )
cat ${file}* > ${file}
end
答案 2 :(得分:0)
这是我的解决方案
sed -r 's/>(....).*/>\1/' | xargs | sed 's/ >/\n>/g' | sort | awk '$1==prev{$1="";print;next}$1!=prev{prev=$1}1' | xargs -n1