一个比grep更快高效的文本搜索命令silversearcher-ag

一个比grep更快高效的文本搜索命令silversearcher-ag

公众号回复书籍领取学习资料,包括linux,golang,java,js,操作系统,计算机网络,编程经验,算法与数据结构等。

写在前面:

我们熟知的linux其实是指GNU/Linux

linux本身只是一个内核,而我们常说的linux操作系统其实是linux内核+GNU工具。

包含常见的gcc,shell命令行中的各种基本命令等。

可以说正是GNU让Linux大放光彩,也是Linux让GNU闻名,两者相辅相成。

今天我们介绍两款工具grep和silversearcher-ag。

其中grep正是出自GNU项目

链接:http://www.gnu.org/software/grep/manual/grep.html

这两个工具功能是差不多的,都是文本搜索工具,都支持正则表达式,但是后者更快更高效。

ag更好用的一个点

image-20210319213522134

这是一本讲解Go语言的开源书籍,假如我要在以上所有文件中找到关于锁的知识,该怎么办?

使用grep

grep "锁" * # *表示该目录下所有的文件

image-20210319213747595

缺陷是不会遍历利该目录下的子目录。

使用ag

首先安装ag命令

# ubuntu/debian
sudo apt-get install silversearcher-ag
# centos
sudo yum install the_silver_searcher
# mac
brew install the_silver_searcher
ag "锁"

使用起来更简单,并且会递归遍历子目录进行查找

image-20210319214214841

测试一下两者谁更高效

创建99999个文件,并且命名为1.txt … 99999.txt

再向99999.txt中写入99999

touch {1..100000}.txt
echo "99999" > 99999.txt

image-20210319224717759

我们的任务就是找出哪个文件中存在99999这个数

【grep】

grep "99999" *

我的电脑上测试需要10s

image-20210319224901215

【ag】

ag "99999"

大概6秒左右

并且还给出了所在文件的第几行

image-20210319224936632

【总结】

日常场合grep完全够用

但是ag可能查阅起来更方便

另外ag在文件更大的时候效率更高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值