正则表达式匹配行首的问题
时间:2011-04-30
来源:互联网
查找一行中的纯数字行(可以包括空格)
cat a
1 2 x
a b 1 2 f
2 3 4
23
上面 的空白全是空格
用grep '^\s*\([0-9]\s*\)*$' a,输出
2 3 4
23
结果正确
用awk '/^\s*([0-9]\s*)*$/' a,输出
23
漏掉了 2 3 4
用awk '/^ *([0-9] *)*$/' a (把\s用空格换掉)
输出
2 3 4
23
结果正确。
这是什么原因?难道在awk中\s不是表示所有的空白字符吗?
cat a
1 2 x
a b 1 2 f
2 3 4
23
上面 的空白全是空格
用grep '^\s*\([0-9]\s*\)*$' a,输出
2 3 4
23
结果正确
用awk '/^\s*([0-9]\s*)*$/' a,输出
23
漏掉了 2 3 4
用awk '/^ *([0-9] *)*$/' a (把\s用空格换掉)
输出
2 3 4
23
结果正确。
这是什么原因?难道在awk中\s不是表示所有的空白字符吗?
作者: shmily623 发布时间: 2011-04-30
好像不认 \s 吧,从 manpage 中没有找到,但是肯定是认 [:space:] 的。
代码:
awk '/^[[:digit:][:space:]]+$/' a
作者: aerofox 发布时间: 2011-04-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28