如何使用awk在一下数据中截取如下模板
发表于 : 2014-10-27 22:01
(FILENAME) 报告日期 流动比率 速动比率....
600000 2014-3-31 0.91 0.8
600000 2013-12-31 0.85 0.77
大体格式就像上面
代码: 全选
gawk 'BEGIN{ FS=","; ORS="" }{ for (i=1; i<=NF; i++) c[NR][i]=$i }END{ for (i=1; i<=NF; i++) { for (j=1; j<=NR; j++) { print c[j][i] " " } print "\n" } }' filename
大神,我搞了好几天实在不懂于是又来问您了,我用了您给的命令后确实行列对调了,不过使用awk截取数据的时候astolia 写了:说白了就是行列对调吧代码: 全选
gawk 'BEGIN{ FS=","; ORS="" }{ for (i=1; i<=NF; i++) c[NR][i]=$i }END{ for (i=1; i<=NF; i++) { for (j=1; j<=NR; j++) { print c[j][i] " " } print "\n" } }' filename
去掉-F ','就好了,astolia给的命令最后print c[j] " "给的分隔符是空格,而你用的是',',AWK当然认为只有一个域啦。fuckloser 写了:大神,我搞了好几天实在不懂于是又来问您了,我用了您给的命令后确实行列对调了,不过使用awk截取数据的时候astolia 写了:说白了就是行列对调吧代码: 全选
gawk 'BEGIN{ FS=","; ORS="" }{ for (i=1; i<=NF; i++) c[NR][i]=$i }END{ for (i=1; i<=NF; i++) { for (j=1; j<=NR; j++) { print c[j][i] " " } print "\n" } }' filename
awk -F ‘,’ ‘{print ¥1}’ filename 的时候是把整体都输出出来了,而不是只是单纯的输出第一个域。。。请问这个怎么解决