在unix中转置文件

gyr*_*ous 1 unix linux grep unit-testing

我有这样的文件

1111,K1
2222,L2
3333,LT50
4444,K2
1111,LT50
5555,IA
6666,NA
1111,NA
2222,LT10
Run Code Online (Sandbox Code Playgroud)

需要的输出

1111,K1,LT50,NA
2222,L2,LT10
3333,LT50
4444,K2
5555,IA
6666,NA
Run Code Online (Sandbox Code Playgroud)

第1列列号可以随时重复,但我需要的输出是sort和uniq

gho*_*g74 5

awk -F"," '{a[$1]=a[$1]FS$2}END{for(i in a) print i,a[i]}' file | sort
Run Code Online (Sandbox Code Playgroud)

如果您有一个大文件,您可以尝试每隔几行打印一次,例如50000

BEGIN{FS=","}
{ a[$1]=a[$1]FS$2 }
NR%50000==0 {
  for(i in a) { print  a[i] }
  delete a  #delete array so it won't take up memory
}
END{
  for(i in a){ print a[i] }
}
Run Code Online (Sandbox Code Playgroud)