如何使用awk在一下数据中截取如下模板

sh/bash/dash/ksh/zsh等Shell脚本
回复
fuckloser
帖子: 7
注册时间: 2014-10-06 15:07
系统: WIN8 Ubuntu

如何使用awk在一下数据中截取如下模板

#1

帖子 fuckloser » 2014-10-27 22:01

212301dp5fkccppggqfdd6.png
不知道怎么从中截取数据,如下:
(FILENAME) 报告日期 流动比率 速动比率....
600000 2014-3-31 0.91 0.8

600000 2013-12-31 0.85 0.77

大体格式就像上面
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 如何使用awk在一下数据中截取如下模板

#2

帖子 astolia » 2014-10-27 22:50

说白了就是行列对调吧

代码: 全选

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
fuckloser
帖子: 7
注册时间: 2014-10-06 15:07
系统: WIN8 Ubuntu

Re: 如何使用awk在一下数据中截取如下模板

#3

帖子 fuckloser » 2014-11-04 20:47

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截取数据的时候
awk -F ‘,’ ‘{print ¥1}’ filename 的时候是把整体都输出出来了,而不是只是单纯的输出第一个域。。。请问这个怎么解决 :em11
dynamic0603
帖子: 259
注册时间: 2008-11-14 20:35

Re: 如何使用awk在一下数据中截取如下模板

#4

帖子 dynamic0603 » 2014-11-05 11:08

fuckloser 写了:
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截取数据的时候
awk -F ‘,’ ‘{print ¥1}’ filename 的时候是把整体都输出出来了,而不是只是单纯的输出第一个域。。。请问这个怎么解决 :em11
去掉-F ','就好了,astolia给的命令最后print c[j] " "给的分隔符是空格,而你用的是',',AWK当然认为只有一个域啦。
回复