ChinaUnix.net
相关文章推荐:

awk NF

又record 如下 -181 -13 kcg_true -181 kcg_true 1 kcg_true '~' ' ' 3 11 kcg_true -17 kcg_true -13 kcg_true '~' 'A' 7 181 kcg_true -17 kcg_true 181 kcg_true ' ' 'x' -181 -181 kcg_true 11 kcg_true -181 kcg_true 'A' 'x' ... 它们的nf的相等的; 但是我做[[ fieldNum == nf ]]会得出不相等 引起的原因是 ‘ ’中的空格也被当作FS了 怎么解决 让awk 判断出这些record的nf是相等的

by luyi1983 - Shell - 2009-09-01 01:46:27 阅读(1488) 回复(7)

相关讨论

nf:浏览记录的域个数。 nf:number of fields in the current record 照以上理解 $pwd /usr/local/etc $echo $PWD|awk -F/ '{print $nf}' etc $echo $PWD|awk -F/ '{print $nf}'应该显示域个数3才对啊。为什么会显示文件名etc呢?

by 朽木可雕 - Shell - 2004-03-07 21:19:47 阅读(1156) 回复(3)

BEGIN { FS="," chg_str="IP," if (length(des_ip) > 0){ ipaddr=des_ip } else { ipaddr="10.10.5.44" } } { #print "nf => " nf #print "nf => " $nf if ( NR == 1) { printf "%s",chg_str print $0 } else { printf "\"%s\",",ipaddr #print "nf => " nf for (i = 1; i <= nf; i++){ printf "%s",$i } #print $0 print "NR => " NR } } 程...

by yourkeychen - Shell - 2007-12-14 21:47:23 阅读(6826) 回复(12)

awk 'nf 3 { print $0 }' /tmp/A /tmp/B #把A文件中字段数=3 的记录的第一个字段显示出来并保存到B文件?#

by marsoo - Shell - 2003-11-13 14:09:02 阅读(5667) 回复(12)

按照awk的使用手册,nf代表Number of fields in current record 但是下面 有这样一个文件: -bash-3.00$ cat testfile hz:zj wh:hb:zh 下面命令的输出为空: -bash-3.00$ cat testfile | awk -F: '/nf>2/ {print $3}' -bash-3.00$ 下面却又可以: -bash-3.00$ cat testfile | awk -F: '{if (nf > 2) print $3}' zh -bash-3.00$ 请问是为什么?谢谢!

by rc_hz - Shell - 2009-11-02 18:15:07 阅读(1044) 回复(5)

在处理{}中用它还可以循环处理每一行{for (i=1;i<=nf;i++}... 但是到了 END{}里面,我想再添加一行统计信息{for (i=1;i<=nf;i++).....}就不行了...貌似nf=0了 怎么办?有什么更好方式麽?

by kingsu - Shell - 2008-06-18 17:20:07 阅读(1544) 回复(7)

例子: cd /usr/local echo $PWD | awk -F/ '{print $nf}' echo $PWD | awk -F/ '{print nf}' 第二个打印出来的是域的总数; 第一个打印出来的是 local,我的问题是:$nf是代表最后一个域值吗? 如果$代表句末,那我执行 echo $PWD | awk -F/ '{print ^nf}' 就报错了。所以$nf到底是代表什么,$代表什么? [ 本帖最后由 smz_f91 于 2007-10-26 11:52 编辑 ]

by smz_f91 - Shell - 2007-10-24 14:37:49 阅读(3807) 回复(6)

主机每天有一张报表,只有一行,但字符却有一千多个,我想以"|"为分隔符,取到指定字段,但如下awk却不行 [code]awk -F"|" '{if (nf=30) print $nf}' rpt0808.dat awk: record'521311501|沙区街储蓄所...' has too many fields input record number 2, file - soruce line 1 of program << {print nf} >> $wc rpt0808.dat 0 2 1410 rpt0808.dat [/code] 就是因为这一行太长而报错, 那要怎么做才能实现.谢谢 [quote] $cat ...

by styr - Shell - 2005-08-09 14:47:55 阅读(2054) 回复(16)

当然不是指用$0 awk 'BEGIN{RS=""}{for(a in nf);print $a}' ufile 这样貌似不行....请教...:shock:

by cxfcxf - Shell - 2009-03-30 15:14:28 阅读(1472) 回复(6)

有一个文件如下: w aa n t ax d t ch ae f d jh ah s t ih s 我现在想显示每一行, 但每一行的最后一个字段不显示, 例如结果为: w aa n t ax t ch ae d jh ah s t ih 请问应该怎么实现啊, 先谢谢了

by Jenny.Palmy - Shell - 2008-12-16 15:45:59 阅读(1970) 回复(7)

awk中双引号怎么表示? 比如我要把其中的一个字段$1=aaa两边添加双引号,变成"aaa"

by over12 - Shell - 2009-11-04 16:31:32 阅读(767) 回复(5)