0. 概述
如果你想在一个路经下查找包含某个文本的文件,你可能会使用 grep 命令,但是,这里我要介绍一个更好用的命令:ack。
1. 安装
和一般 Linux 发行版都内置 grep 不同,ack 都是需要自行安装的,有好几个发行版都可以直接用包管理工具安装,在 CentOS 下可以使用 EPEL 的源进行 Yum 安装,但是我使用的是直接下载二进制安装:
[[email protected]]# curl https://beyondgrep.com/ack-v3.3.1 > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack
等待下载完毕就可以了:
[[email protected]]# ack --version
ack v3.3.1 (standalone version)
Running under Perl v5.16.3 at /usr/bin/perl
Copyright 2005-2020 Andy Lester.
This program is free software. You may modify or distribute it
under the terms of the Artistic License v2.0.
2. 使用
最简单的使用方法就是直接 ack <字符串>
表示你要查找什么文本:
[[email protected]]# ack test
Q1/Q1_test.go
4: "testing"
9:func Test_numberOfSteps(t *testing.T) {
Q2/Q2_test.go
4: "testing"
9:func Test_numOfSubarrays(t *testing.T) {
Q3/Q3_test.go
4: "testing"
9:func Test_angleClock(t *testing.T) {
这通常是够用了,当然,你可以通过参数控制大小写敏感阿,匹配后输出若干行,以及打不打印行号这些,如果有需要的话,可以通过 ack --help
查看,或者访问官方文档查看。