LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 629|回复: 4

求解awk 的问题

[复制链接]
发表于 2005-8-18 17:18:51 | 显示全部楼层 |阅读模式

  1. jnow@ubuntu:~ $ cat hello.c
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5.   int i;
  6.   for (i=0;i<6;i++)
  7.   {
  8.      printf("i=%d",i);
  9.      printf("Hello,embedded linux!\n");
  10.   }
  11.   return 0;
  12. }
  13. //这里是注释
复制代码

使用awk之后
  1. jnow@ubuntu:~ $ cat hello.c | awk -F ';' '{ print $1 "@@@"  $3}'
  2. #include <stdio.h>@@@
  3. int main(void)@@@
  4. {@@@
  5.   int i@@@
  6.   for (i=0@@@i++)
  7.   {@@@
  8.      printf("i=%d",i)@@@
  9.      printf("Hello,embedded linux!\n")@@@
  10.   }@@@
  11.   return 0@@@
  12. }@@@
  13. //这里是注释@@@
复制代码

我要打印1,3号字段,怎么全打印了?而且也匹配的不对!
是我参数不对吗?
发表于 2005-8-18 17:22:40 | 显示全部楼层
你要打印什么内容?
回复 支持 反对

使用道具 举报

发表于 2005-8-18 17:52:36 | 显示全部楼层
awk的结果很正确。
你不是用“;”作为字段分割符吗。如果一行即一条记录里不够三个字段,就只打印“字段一@@@”,因为字段三为空。
如果你要用空格作为字段分割符就不要用-F参数。还有,就是象二楼说的,你的要求是什么?想怎么分割字段?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-19 12:38:18 | 显示全部楼层
只打印第一和第三字段,没有分号也会打印吗?
好像有点明白了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-19 12:40:34 | 显示全部楼层
谢谢两位
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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