给定一个文件 file.txt,转置它的内容。
你可以假设每行列数相同,并且每个字段由 ' ' 分隔.
示例:
假设 file.txt 文件内容如下:
name age
alice 21
ryan 30
应当输出:
name alice ryan
age 21 30
awk -F ' ' '{for(i=1;i<=NF;i++)
{if(NR==1)
{arr[i]=$i}
else{arr[i]= arr[i]" "$i}
}
}
END{for(i=1;i<=NF;i++)
print arr[i]
}' file.txt
awk 一般是对字符串进行格式化操作的。
-F ' '表示按照空格对字符进行分割。
NF表示当前行的的列数,如例子,NF表示2
NR表示当前的处理行。因为awk是按照行来进行字符处理的
END表示最后执行一次。因为end前的代码是每一行的遍历都会执行。END再结束之前执行一次。