如何在 Unix 中将行设置为列。例子:
name : Keshav
sub : C++
branch: cse
DOB :22/09/1990
company:NONE
name : Vijay
sub : Java
branch: cse
DOB :22/09/1985
company:NONE
我想要这样的输出:
name sub branch DOB company
Keshav C++ cse 22/09/1990 NONE
Vijay Java cse 22/09/1990 NONE
答案1
另一种方法:
awk 'BEGIN{FS=":|\n";RS=""}NR==1{print $1,$3,$5,$7,$9}{print $2,$4,$6,$8,$10}'
答案2
您可能需要手动放置标头并awk
在文件上运行以下命令:
awk -F: '{count++; printf("%s ",$2); if (count>5){count=0; printf("\n");}}' x.txt >> res.txt
假设x.txt
包含您所拥有的输入,并且res.txt
是一个准备好的文件,其标题如下:
name sub branch DOB company
结果输出将是:
name sub branch DOB company
Keshav C++ cse 22/09/1990 NONE
Vijay Java cse 22/09/1985 NONE