行列旋转2:行转列

行列旋转2:行转列

技巧:一维数组遍历拼接,以及巧用数组索引
awk程序脚本中的数组无需事先声明初始化,即时即用。
每一行被切割成几份(即几个字段),再将字段索引号放在数组作判断,
不存在则初始化a[i]=$i该数组元素,存在则在原先数组元素的基础上追加段内容, 把整个文件文本遍历完毕后,再按照行列转换思想(行变列,列变行,即原5行3列,现3行5列), 原来的列变成行,则最后用NF循环控制行输出。
每个数组元素代表每一行组成内容(即是原始文件的一整列内容)。

[root@localhost ~]# cat a.txt
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
[root@localhost ~]# 
[root@localhost ~]# awk '{for(i=1;i<=NF;i++){if(i in a) a[i]=a[i]" "$i ; else a[i]=$i }} END{for(i=1;i<=NF;i++) print a[i]}' a.txt
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15
[root@localhost ~]# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值