shell: transpose file

Questions:

Given a text file file.txt, transpose its content.
You may assume that each row has the same number of columns and each field is separated by the ' ' character.
For example, if file.txt has the following content:

name age
alice 21
ryan 30

Output the following:

name alice ryan
age 21 30

Solution:

awk '{
   for (f = 1; f <= NF; f++) { a[NR, f] = $f } 
 }
 NF > nf { nf = NF }
 END {
   for (f = 1; f <= nf; f++) {
       for (r = 1; r <= NR; r++) {
           printf a[r, f] (r==NR ? RS : FS)
       }
   }
}' file.txt
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc阅读 2,928评论 0 0
  • 风冷雨寒 浮华落尽 弦诉一曲 歌凌乱 二十六年 旧调新弹 落花惊鸿伴 不见故人孑然 天涯望断 海角踏遍 饮一樽 月...
    寒江梅阅读 210评论 0 0
  • R: 君子送礼模型 送礼有时候是个地雷。如果送廉价、不具个人特质的礼物,可能会让收礼者觉得不受重视,进而让送礼者和...
    阿凯同学阅读 178评论 0 0
  • “你要去那吃东西??”枭问。 “嗯……不知道”薇儿脸有点红红的说到。 “什么?你不知道,那你平常去哪吃东西?”枭惊...
    A木木阅读 189评论 0 2