Chinaunix

标题: awk 字符串连接问题 [打印本页]

作者: nwpu_wl    时间: 2012-09-11 15:06
标题: awk 字符串连接问题
有一文件a.txt,文件内容如下:
111111111
222222222
333333333
444444444
555555555
666666666
777777777
888888888
999999999

现用如下awk命令:
  1. cat a.txt |awk '{num=(NR-1)/4;a[num]=(a[num]""$0);printf("NR=%d;num=%d;a[num]=%s\n",NR,num,a[num])}'  
复制代码
结果如下:

NR=1;num=0;a[num]=111111111
NR=2;num=0;a[num]=222222222
NR=3;num=0;a[num]=333333333
NR=4;num=0;a[num]=444444444
NR=5;num=1;a[num]=555555555
NR=6;num=1;a[num]=666666666
NR=7;num=1;a[num]=777777777
NR=8;num=1;a[num]=888888888
NR=9;num=2;a[num]=999999999

麻烦大神们解释下,为何字符串的连接操作没有生效呢?

作者: rdcwayx    时间: 2012-09-11 15:24
  1. a[num]=(a[num]""$0)
复制代码
awk有这种写法吗?
  1. a[num]=a[num]""$0
复制代码

作者: nwpu_wl    时间: 2012-09-11 15:44
回复 2# rdcwayx

没有????


   
作者: yinyuemi    时间: 2012-09-12 00:16
回复 1# nwpu_wl


    awk '{num=(NR-1)/4;print num,a[num]=(a[num]""$0);printf("NR=%d;num=%d;a[num]=%s\n",NR,num,a[num])}' file
观察下红色部分的结果
作者: samwonwyd    时间: 2012-09-12 09:46
cat a.txt |awk '{num=int((NR-1)/4);a[num]=(a[num]""$0);printf("NR=%d;num=%d;a[num]=%s\n",NR,num,a[num])}'  
作者: nwpu_wl    时间: 2012-09-13 14:32
回复 5# samwonwyd
太帅了


   




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