您好,我正在尝试整理我拥有的数据集。如果能帮上忙,我将不胜感激!我的数据看起来像这样:
>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
请帮帮我!
发布于 2014-10-06 16:35:54
这可能是您想要的,这取决于您希望如何处理重复项:
$ 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
发布于 2014-10-06 16:37:45
如果您的所有文件都在同一目录中,则此tcsh shell脚本:
foreach file ( `ls * | perl -pe 's/(....).*/$1/' | sort -u` )
cat ${file}* > ${file}
end
发布于 2014-10-06 21:08:47
这是我的解决方案
sed -r 's/>(....).*/>\1/' | xargs | sed 's/ >/\n>/g' | sort | awk '$1==prev{$1="";print;next}$1!=prev{prev=$1}1' | xargs -n1
https://stackoverflow.com/questions/26220463
复制