LinuxSir.cn,穿越时空的Linuxsir!

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

一个awk的问题

[复制链接]
发表于 2004-7-20 11:05:41 | 显示全部楼层 |阅读模式
不输出带有注释的行:
$ sed -e '/^#/d' /etc/services
$ $ awk 'substr($0,1,1) != "#"{print}' /etc/services
awk有没有更好的方法,
用规则表达式表示第一个字符非“#”?
发表于 2004-7-20 11:22:56 | 显示全部楼层
  1. awk '/^[^#]/' /etc/services
复制代码
 楼主| 发表于 2004-7-20 11:41:00 | 显示全部楼层
^是匹配一行的开始
[^#]是匹配^或#
怎么^[^#]就变成了不匹配以#开始的了呢?
能不能解释一下?
发表于 2004-7-20 11:55:25 | 显示全部楼层
在[ ]中的^,是非的意思,就事不匹配#,请参阅:正则表达式
在awk中的正则表达式是这样解释的,例如:
[^ABC]  #表示与不在字符集,即A,B或者C里的字符相匹配
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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