bash – greping一个巨大的文件(80GB)以任何方式加速?

grep -i -A 5 -B 5 'db_pd.Clients'  eightygigsfile.sql

这已经在一个相当强大的linux服务器上运行了一个小时,否则不会重载。
任何替代grep?任何关于我的语法,可以改进,(egrep,fgrep更好?)

文件实际上是在与另一个服务器的挂载共享的目录中,但实际的磁盘空间是本地的,所以不应该有什么区别?

grep占用了93%的cpu

这里有几个选项:

1)使用LC_ALL = C前缀您的grep命令,以使用C语言环境而不是UTF-8。

2)使用fgrep,因为你正在搜索一个固定字符串,而不是正则表达式。

3)删除-i选项,如果你不需要它。

所以你的命令变成:

LC_ALL=C fgrep -A 5 -B 5 'db_pd.Clients' eightygigsfile.sql

如果将文件复制到RAM磁盘,也会更快。

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...