题目
描述
给定一个文件 file.txt
,转置它的内容。
你可以假设每行列数相同,并且每个字段由 ' '
分隔.
示例:
假设file.txt
文件内容如下:
name age
alice 21
Ryan 30
应当输出:
name alice ryan
age 21 30
解答
思路
第一反应是用awk显示列,那么需要知道有多少列。就先用awk获取列数,再循环。应该这个答案缓存击败100%用户,但是用时击败4.02%,显然耗时有点多,需要改进。
代码
k=`awk '{print NF}' file.txt | head -1`
for ((i=1;i<=k;i++))
do
awk '{print $'$i'}' file.txt | xargs
done