转置文件

给定一个文件 file.txt,转置它的内容。

你可以假设每行列数相同,并且每个字段由 ‘ ‘ 分隔.

示例:

假设 file.txt 文件内容如下:

name age
alice 21
ryan 30
应当输出:

name alice ryan
age 21 30

1
cat file.txt | awk '{for(i=1;i<=NF;i++){if(NR==1){res[i]=$i}else{res[i]=res[i]" "$i}}}END{for(i=1;i<=NF;i++){print res[i]}}'

awk是一行一行处理数据,if(NR==1){res[i]=$i}优先初始化第一行的res[]数组,长度为第一行的元素格式,后面每行在对应位置元素后面追加。