awk正则表达式开始行锚定匹配空格

通过awk解析输入文件我遇到了awk中锚点的问题.

给出以下文件:

2015
2015
test
 test

用awk输出

$awk '$1 ~ /^[0-9]/' file
 2015
2015

用sed输出

$sed -n '/^[0-9]/p' file
2015

有人可以解释我在awk中看到的行为吗?

看到了

> CentOS 7,GNU bash 4.2.46,GNU Awk 4.0.2
> AIX 7,GNU bash 4.3.30,awk(AIX中的缺省版本)和gawk 4.0.2

解决方法

您将了解这个awk命令的不同之处:

awk '/^[0-9]/' file
2015

现在awk正在全线运行,就像sed而不仅仅是第一个字段.

$1~ / ^ [0-9] /仅比较第一个字段,因为空格是awk中的默认字段分隔符,因此第一个字段在两行中都是2015,而不考虑它之前的空格.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...