我一直在使用grep -i
,发现它比egrep
同等字母的字母大写或小写字母慢。
$ time grep -iq "thats" testfile
real 0m0.041s
user 0m0.038s
sys 0m0.003s
$ time egrep -q "[tT][hH][aA][tT][sS]" testfile
real 0m0.010s
user 0m0.003s
sys 0m0.006s
是否grep -i
还要进行其他测试egrep
?
我在测试之前已将该文件grep'd,因此已将其缓存。如果按相反的顺序进行,则几乎相同的时间。
—
tildearrow
这可能取决于语言环境:某些语言环境涉及复杂的计算,以解决不区分大小写的问题。在涉及Unicode的许多情况下,GNU grep特别慢。您使用了什么语言环境设置?在什么Unix变体下?测试文件的内容是什么?
—
吉尔斯(Gillles)“所以-别再邪恶了”
@Gilles看起来不错,在这里将每个测试重复100次(对整个过程进行计时),
—
AugustBitTony
egrep
比grep
我设置之前要快LANG=C
,然后它们大致相同。
@EightBitTony看
—
卡巴斯德,2016年
user
时间(不包括等待磁盘的时间)。差异有一个数量级。
grep
,以确保您没有测量flie的磁盘缓存之间的差异。