LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: najia01

如何插入一列(awk或者gawk)

[复制链接]
发表于 2004-8-13 15:10:39 | 显示全部楼层

  1. $ awk '{getline l<"i";split(l,arr,FS);getline t<"j";split(t,brr,FS);print $1,arr[1],$2,arr[2],$3,brr[1],brr[2]}' k
  2. kkkk iiii llll jjjj mmmm hhhh oooo
  3. kkkk iiii llll jjjj mmmm hhhh oooo
  4. kkkk iiii llll jjjj mmmm hhhh oooo
  5. kkkk iiii llll jjjj mmmm hhhh oooo
复制代码

没问题呀,不要在AWK的脚本两端用双引号,用单引号更安全

楼上指什么规律?
发表于 2004-8-13 22:52:15 | 显示全部楼层
之所以多出来是因为每个文件的长度不同,
而没有指定输出格式。
如下例:

  1. $ cat a b c
  2. a11     a12     a13
  3. a21     a22     a23
  4. a31     a32     a33

  5. b11     b12
  6. b21     b22
  7. b31     b32
  8. b41     b42

  9. c11     c12
  10. c21     c22
  11. c31     c32
  12. c41     c42
  13. c51     c52

  14. $ awk '{getline l<"a";split(l,arr);getline m<"c";split(m,brr);print brr[1]"\t"$1"\t"arr[1]"\t"$2"\t"arr[2]"\t"arr[3]"\t"brr[2]}' b
  15. c11     b11     a11     b12     a12     a13     c12
  16. c21     b21     a21     b22     a22     a23     c22
  17. c31     b31     a31     b32     a32     a33     c32
  18. c41     b41             b42                     c42
  19. c51                                             c52
复制代码

文件长度不同,但是指定输出格式就免除了输出格式的错行。
 楼主| 发表于 2004-8-14 13:20:47 | 显示全部楼层
谢谢aaccdd兄。
我的之所以会多出一些,是因为有些文件多出了空行。
谢谢aaccdd兄提醒。
发表于 2004-8-16 20:57:38 | 显示全部楼层

强,很有收获!

我在aix下写proc的代码时,常常偷懒用awk从sql建表语句中,直接生成c的头文件定义,可比起这些,真是小巫见大巫啊~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表