写一个 bash脚本来转置文本文件内容。假设:每行列数相同,并且每个字段由空格分隔示例:假设 test.txt 内容如下:job salaryc++ 13java 14php 12脚本输出:job c++ java phpsalary 13 14 12
awk '{for(i=1;i<=NF;i++){a[i]=a[i]" "$i}}END{for(i=1;i<=NF;i++){print a[i]}}' test.txt
上面这个脚本的思路是利用awk命令将每列值当作一个元素放入一个数组中,末了输出。
awk是一个强大的文本分析工具,内置许多变量,NF是每行的字段数,在这里也便是列数。END关键字是读完所有行后实行END{}后面的脚本,类似的还有BEGIN{}是实行前的动作。

其余,我还有个其他的思路:读出每行的第1列元素并以空格分隔打印出,然后换行读出第2列元素以空格分隔打印,依次读出第i列并打印,貌似更大略些,代码该怎么写呢?欢迎大家来谈论!