关于awk的一个显示问题
谁来解释一下这里头不同显示的缘故??
作者: twenty_four 发布时间: 2011-08-08
首先你要了解一下awk的匹配规则。第一次匹配后就开始生效。结束的时候也是。
第一个开始匹配是sun。从sun开始打印。结束的时候是Moon所以到这里就结束退出了。不会在打印moon。因为他只匹配第一个。
第二个是从Moon开始匹配。一直匹配到/[Ss]un/ 如果没有/[Ss]un/就一直到结束。
awk是按行读取。。一行一行往下读。不会回头在去匹配的。
不知道这样讲你明白了没有。。
第一个开始匹配是sun。从sun开始打印。结束的时候是Moon所以到这里就结束退出了。不会在打印moon。因为他只匹配第一个。
第二个是从Moon开始匹配。一直匹配到/[Ss]un/ 如果没有/[Ss]un/就一直到结束。
awk是按行读取。。一行一行往下读。不会回头在去匹配的。
不知道这样讲你明白了没有。。
作者: wenmin88888 发布时间: 2011-08-08
至于LZ明不明白,我。。。。反正是明白了
如果把[ ]里的mM写成这样就都能显示了。。。。
如果把[ ]里的mM写成这样就都能显示了。。。。
作者: dn833 发布时间: 2011-08-08
额。。不是这个意思。这个和正则没关系。只要匹配到第一个就停止。不管你正则里面怎么写。反正第一个匹配的肯定先是Moon
作者: wenmin88888 发布时间: 2011-08-08
awk是按行读取。。一行一行往下读。不会回头在去匹配的。
这句话来的经典。
虽然自己知道读取流程是这么来的,不过从当时就没那股感觉。哈哈
这句话来的经典。
虽然自己知道读取流程是这么来的,不过从当时就没那股感觉。哈哈
作者: twenty_four 发布时间: 2011-08-08
“把[ ]里的mM写成这样就都能显示了。。。。 ”
[Alibaba root@localhost /root]
#awk '/[mM]oon/,/[Ss]un/' test
Moon
moon
一样的,看匹配顺序呀~ 哈哈
[Alibaba root@localhost /root]
#awk '/[mM]oon/,/[Ss]un/' test
Moon
moon
一样的,看匹配顺序呀~ 哈哈
作者: twenty_four 发布时间: 2011-08-08