使用awk将列转置到行
我有一个输入数据文件:使用awk将列转置到行,awk,Awk,我有一个输入数据文件: anim gent FZ543 1 FZ543 2 FZ543 3 FZ543 1 FZ547 4 FZ547 3 FZ547 3 FZ547 1 我想将这些数据转换为:- anim gent FZ543 1 2 3 1 FZ547 4 3 3 1 换句话说,我想把元素从垂直方向转移到水平方向。 我可以用AWK和Comand 谢谢你的提醒 awk 'NR==1{print} N
anim gent
FZ543 1
FZ543 2
FZ543 3
FZ543 1
FZ547 4
FZ547 3
FZ547 3
FZ547 1
我想将这些数据转换为:-
anim gent
FZ543 1 2 3 1
FZ547 4 3 3 1
换句话说,我想把元素从垂直方向转移到水平方向。
我可以用AWK和Comand
谢谢你的提醒
awk 'NR==1{print} NR>1{a[$1]=a[$1]" "$2}END{for (i in a){print i " " a[i]}}' file
输出
anim gent
FZ543 1 2 3 1
FZ547 4 3 3 1
这可能有助于提供更多的背景。你想学awk吗?这是你唯一可以使用的程序吗?还是没有帮助?
$ awk '$1 != prev{printf "%s%s",ors,$1; ors=ORS; ofs="\t"} {printf "%s%s",ofs,$2; ofs=OFS; prev=$1} END{print ""}' file
anim gent
FZ543 1 2 3 1
FZ547 4 3 3 1