grep / sed / awk在非常大的文件上的性能如何?

卢克·帕福德(Luke Pafford)

我想知道grep,sed和awk是否是在大文件中查找数据的可行工具。

可以说我有一个1TB的文件。如果我想处理该文件中的文本,如果我使用单独的命令grep,sed和awk以及将它们混合在一起,那么时间框架将是什么样的。

显然,具体的答案是不可能的,因为结果会根据硬件规格而有所不同,但是如果我能得到一个一般的估计,那将是有帮助的。

鲁迪米尔

一般来说我会说grep是最快的,sed是最慢的。当然,这取决于您要做什么。我发现awk比快得多sed

如果不需要真正的正则表达式,而只需要简单的固定字符串(选项-F),则可以加快grep的速度。

如果要在管道中一起使用grep,sed,awk,那么如果可能的话,我会先放置grep命令。

例如:

grep -F "foo" file | sed -n 's/foo/bar/p'

通常比这更快:

sed -n 's/foo/bar/p' file

尽管grep第一行中的似乎不必要。

顺便说一句,LC_ALL=C如果您要处理简单的ASCII文本文件,则可以使用这些命令来加快速度

注意,我的所有经验都是基于gnu命令的。您也可以尝试不同的实现方式并比较速度。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章