这是我的文件 http://www.zen76171.zen.co.uk/blahsomefile1
这是一个大约1.18MB的文本文件
看看我得到了多少匹配线
用-P
C:\blah>grep -P "[^J]*J" blahsomefile1 | wc -l
72383
没有-P
C:\blah>grep "[^J]*J" blahsomefile1 | wc -l
51814
无论是-P还是没有-P,都应该没有区别,但是有。-P匹配太多了。
通过这个测试,我应该得到相同的数字'cos我所说的列表匹配xyz的每一行,并在该输出列表中每一行匹配xyz。它没有-P工作。
没有-P没什么好笑的。
C:\blah>grep "[^J]*J" blahsomefile1 | wc -l
51814
C:\blah>grep "[^J]*J" blahsomefile1 | grep "[^J]*J" | wc -l
51814
随着-P事情发生不应该发生..
C:\blah>grep -P "[^J]*J" blahsomefile1 | wc -l
72383
C:\blah>grep -P "[^J]*J" blahsomefile1 | grep -P "[^J]*J" | wc -l
72229
如果我做 grep -P "[^J]*J" blahsomefile1 | more
我看到它匹配的东西不应该匹配,比如读取的txxxraabcAA
内容不包含J.
txxxJbmmabcraabc
txxxraabcAA
txxxJxmmabcHaabc
计算机正在运行gnuwin32 grep
C:\blah>where grep
C:\Program Files (x86)\GnuWin32\bin\grep.exe
grep版本是2.5.4
C:\blah>"C:\Program Files (x86)\GnuWin32\bin\grep.exe" -V
GNU grep 2.5.4
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
C:\blah>
UPDATE
有趣的是,cygwin的一个更晚了......并且没有bug
C:\blah\aeea2\a\a\a\a>c:\cygwin\bin\grep -P "[^J]*J" blahsomefile1 | wc -l
51814
C:\blah>c:\cygwin\bin\grep -V
/usr/bin/grep (GNU grep) 2.21
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
C:\blah>
gnuwin32 grep仍然是2.5.4,一个非常老的版本。
注意-文件也可从wetransfer和下载从ge.tt如与Firefox浏览器。
1
我无法使用当前版本的GNU grep:2.26在Linux上重现此问题。您可能想看看是否可以更新您的软件:版本2。5。4日期到2009年
—
John1024年