ack

ack

比grep好用的文本搜索工具

安装

# ubuntu下要安装ack-grep,因为在debian系中,ack这个名字被其他的软件占用了。
sudo apt-get install ack-grep
# alpine Linux-apk软件包管理器 安装 ack
apk install ack

参数

这些参数在linux上的适用频率是相当高的,尤其是你用vim做为IDE的话

-c(统计)/ -i(忽略大小)/ -h(不显示名称)/
-l(只显文件名)/ -n(加行号)/ -v(显示不匹配)

特点

ack官网列出了这工具的5大卖点:

  1. 速度非常快,因为它只搜索有意义的东西。
  2. 更友好的搜索,忽略那些不是你源码的东西。
  3. 为源代码搜索而设计,用更少的击键完成任务。
  4. 非常轻便,移植性好。
  5. 免费且开源

实例

在记忆的时候大体上可以分为这几个部分:

Searching 代码搜索
Search output 搜索结果处理
File presentation 文件展示
File finding 文件查找
File inclusion/exclusion 文件过滤

grep常用操作

grep -r 'hello_world' # 简单用法
grep '^hello_world' . # 简单正则
ls -l | grep .py # 管道用法

Searching

简单的文本搜索,默认是递归的。

ack-grep hello
ack-grep -i hello
ack-grep -v hello
ack-grep -w hello
ack-grep -Q 'hello*'

Search File

对搜索结果进行处理,比如只显示一个文件的一个匹配项,或者xxx

ack-grep --line=1       # 输出所有文件第二行
ack-grep -l 'hello'     # 包含的文件名
ack-grep -L 'print'     # 非包含文件名

File presentation

输出的结果是以什么方式展示呢,这个部分有几个参数可以练习下

ack-grep hello --pager='less -R'    # 以less形式展示
ack-grep hello --noheading      # 不在头上显示文件
ack-grep hello --nocolor        # 不对匹配字符着色

File finding

没错,它可以查找文件,以省去你要不断的结合find和grep的麻烦,虽然在linux的思想是一个工具做好一件事。

ack-grep -f hello.py     # 查找全匹配文件
ack-grep -g hello.py$    # 查找正则匹配文件
ack-grep -g hello  --sort-files     # 查找然后排序

File Inclusion/Exclusion

文件过滤,个人觉得这是一个很不错的功能。如果你曾经在搜索项目源码是不小心命中日志中的某个关键字的话,你会觉得这个有用。

ack-grep --python hello       # 查找所有python文件
ack-grep -G hello.py$ hello   # 查找匹配正则的文件

参考资料

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/ack/

(0)
AuroraAurora站点维系者
上一篇 2023年 12月 6日 下午12:54
下一篇 2023年 12月 6日 下午12:55

相关推荐

  • HTTP2

    HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),简称为h2(基于TLS/1.2或以上版本的加密连接)或h2c(非加密连接), HTTP/2 是 HTTP 协议的第…

    2023年 5月 14日
  • bye

    文章目录bye补充说明语法实例 bye 命令用于中断FTP连线并结束程序 补充说明 bye命令 在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行。 语法 bye…

    入门教程 2023年 12月 6日
  • neofetch

    文章目录neofetch补充说明安装语法返回 neofetch 显示带有发行徽标的系统信息的工具 补充说明 neofetch 支持Linux/Unix、Windows、macOS。…

    入门教程 2024年 1月 10日
  • pv

    文章目录pv补充说明下载安装语法选项实例注意 pv 显示当前在命令行执行的命令的进度信息,管道查看器 补充说明 pv命令 Pipe Viewer 的简称,由Andrew Wood …

    入门教程 2024年 3月 1日
  • mv

    文章目录mv补充说明语法选项参数实例 mv 用来对文件或目录重新命名 补充说明 mv命令 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目…

    入门教程 2024年 1月 3日
  • mesg

    文章目录mesg补充说明语法参数实例 mesg 设置当前终端的写权限 补充说明 mesg命令 用于设置当前终端的写权限,即是否让其他用户向本终端发信息。将mesg设置y时,其他用户…

    入门教程 2024年 1月 3日
  • ipcalc

    文章目录ipcalc补充说明语法选项实例 ipcalc 简单的IP地址计算器 补充说明 ipcalc命令 是一个简单的ip地址计算器,可以完成简单的IP地址计算任务。 语法 ipc…

    入门教程 2023年 12月 19日
  • hdparm

    文章目录hdparm补充说明语法选项参数实例 hdparm 显示与设定硬盘的参数 补充说明 hdparm命令 提供了一个命令行的接口用于读取和设置IDE或SCSI硬盘参数。 语法 …

    入门教程 2023年 12月 15日
  • HTTP 消息结构

    HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。 一个HTTP客户端是一个应用程序(Web浏览器或其他任何客户端),通…

    2023年 5月 14日
  • lsblk

    文章目录lsblk补充说明选项实例 lsblk 列出块设备信息 补充说明 lsblk命令 用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息…

    入门教程 2023年 12月 19日

发表回复

登录后才能评论
Translate »