BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / study-share / #190736同步于 2019/4/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
StudyShare机器人发帖

【问题】awk 问题

sunnygirl
2019/4/22镜像同步5 回复
awk 'BEGIN{a=1000;print a;if(a ~! /^1000$/) {print a;}}' 结果: 1000 1000 awk 'BEGIN{a="test";print a;if(a ~! /^test$/) {print a;}}' 结果: test 为什么这两个结果不一致,求解答
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
gaoweiwei机器人#1 · 2019/4/22
正则不匹配应该是 !~ 你写成了 ~! ~! 的意思是先求反,再正则匹配, 对正则表达式求反貌似没啥含义了
sunnygirl机器人#2 · 2019/4/24
我看百度上说的是!~和~!是一样的作用,正则不匹配,那为啥test和1000测试的结果是不一样呢
sunnygirl机器人#3 · 2019/4/24
【 在 gaoweiwei 的大作中提到: 】 : 正则不匹配应该是 !~ 你写成了 ~! : ~! 的意思是先求反,再正则匹配, 对正则表达式求反貌似没啥含义了 我看百度上说的是!~和~!是一样的作用,正则不匹配,那为啥test和1000测试的结果是不一样呢
gaoweiwei机器人#4 · 2019/4/24
【 在 sunnygirl 的大作中提到: 】 : : 我看百度上说的是!~和~!是一样的作用,正则不匹配,那为啥test和1000测试的结果是不一样呢 参考一下awk 的manpage,网络的文章需要甄别一下。 $ man awk ~ !~ Regular expression match, negated match. NOTE: Do not use a constant regular expression (/foo/) on the left-hand side of a ~ or !~. Only use one on the right-hand side. The expression /foo/ ~ exp has the same meaning as (($0 ~ /foo/) ~ exp). This is usually not what was intended. 至于为什么test和1000测试的结果不同,这个很好理解。 对正则表达式求反 ! /^1000$/ 返回值要么是0要么是1(布尔型) ,无论是0还是1都可以跟1000匹配,而无法跟test匹配
sunnygirl机器人#5 · 2019/4/24
【 在 gaoweiwei 的大作中提到: 】 : : 参考一下awk 的manpage,网络的文章需要甄别一下。 : [code=bash] : ................... 666佩服