Chinaunix

标题: shell如何把列转成行 [打印本页]

作者: 鸿钧    时间: 2009-01-19 16:54
标题: shell如何把列转成行
如下内容的文件:

2009-01-06
1305
9834

2009-01-07
1335
10386

2009-01-08
1585
11509


怎样变成这样:

2009-01-06 2009-01-07 2009-01-08
1305 13351 585      
9834 103861 1509
作者: ynchnluiti    时间: 2009-01-19 17:10
  1. awk -v RS="" 'NR>1{s=" "}{d=d""s""$1;n1=n1""s""$2;n2=n2""s""$3}END{print d;print n1;print n2}' urfile
复制代码

作者: jinl    时间: 2009-01-19 17:11

  1. awk 'BEGIN{FS="\n";RS=""}
  2.        {for (i=1;i<=NF;i++) a[i]=a[i]""$i" "
  3.         if (max<NF) max=NF}
  4. END{for (i=1;i<=max;i++) print a[i]}' ufile
复制代码

作者: 鸿钧    时间: 2009-01-19 17:20
谢谢楼上两位




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2