搜索指定网站内容(Linux上安装ack的一些非常强大的特性:默认搜索当前工作)
优采云 发布时间: 2021-12-16 10:15搜索指定网站内容(Linux上安装ack的一些非常强大的特性:默认搜索当前工作)
对于系统管理员或程序员来说,当需要在复杂的配置目录或大型源代码树中搜索特定的文本或模式时,grep类型的工具可能最受欢迎
如果grep是您最喜欢的工具之一,那么您可能更喜欢ack。ACK是一个基于Perl的命令行工具,类似于grep,但它比grep更快、更强大。特别是当你是一名程序员时,我强烈建议你使用ack而不是grep
ACK的使用非常适合于代码搜索,因此程序员可以用较少的键在源代码树中进行复杂的查询
ACK的特性
ACK的一些非常强大的功能:
默认搜索当前工作目录
默认递归搜索子目录
忽略元数据目录,例如svn,。Git、CSV和其他目录
忽略二进制文件(如PDF、image、coredumps)和备份文件(如foo~、*.SWP)
在搜索结果中打印行号以帮助您查找目标代码
它可以搜索特定的文件类型(如Perl、C++和makefile),这些文件类型可以有多个文件后缀
突出显示搜索结果
支持Perl的高级正则表达式比grep使用的GNU正则表达式更具表现力
与搜索速度相比,ACK通常比grep快。ACK的速度仅反映在其内置的文件类型筛选器中。在搜索过程中,ACK维护已批准文件类型的列表,并跳过未知或不必要的文件类型。它还避免了检查冗余元数据目录
在Linux上安装ack
尽管ack在大多数Linux发行版中是一个标准软件包,并且很容易获得(例如,基于Debian的系统中的ack grep软件包和基于RedHat的系统中的ack软件包),但与发行版捆绑在一起的ack版本仍然是1.x,并且ack2.0已经发布,并且具有更*敏*感*词*
因此,我将在官方网站中下载它,然后安装ack
方便的是,ACK作为一个单独的Perl脚本在官方网站上提供,它集成了所有需要依赖的模块。因此,您不需要安装额外的Perl模块来运行脚本
要在Linux系统中安装ack,请访问官方网站下载最新版本的ack。在撰写本文时,最新版本为2.12
$wget$sudo mv ack-2.12个单文件/usr/local/bin/ack$sudo chmod 0755/usr/local/bin/ack
应该注意的是,在基于Debian的系统中,有一个称为ack(中文代码转换器)的独立包。因此,如果您碰巧使用了该包,则必须重命名ack以避免命名冲突
ACK的用例
1.在当前目录中递归搜索单词“eat”,该单词与类似于“feature”或“eating”的字符串不匹配:
$ack-w eat
2.搜索字符串“$path=。”对于特殊字符,所有元字符(如“$”、“.”)都需要进行字面匹配:
$ack-Q'$path=.'/等
3.在除dowloads目录外的所有目录中搜索“关于”一词:
$ack about--ignore dir=下载
4.仅搜索收录“受保护”一词的PHP文件,然后通过文件名整合搜索结果,并打印每个文件对应的搜索结果:
$ack--php--group-protected
5.获取收录“cflag”关键字的makefile的文件名。文件名为*MK,Makefile、Makefile和GNU Makefile都被考虑在内:
$ack——制造-l CFLAG
6.在显示整个日志文件时突出显示匹配的字符串:
$tail-f/var/log/syslog|ack--passthru 192.>168.>1.>10
7.要交换ACK支持的文件筛选器类型,请运行:
$ack—帮助类型