首页 > 其他分享 >ag

ag

时间:2023-07-10 17:37:55浏览次数:33  
标签:文件 匹配 ag -- ignore 搜索

ag

ack 的升级版,C语言编写,更快更人性化

补充说明

摘自 https://github.com/ggreer/the_silver_searcher 项目的 Readme.md

  • 它比ack快一个数量级。
  • 它忽略了你的 .gitignore.hgignore 中的文件模式。
  • 如果你的源码库里有你不想搜索的文件,只要把它们的模式添加到一个.ignore文件里。(cough .min.jscough*)
  • 这个命令的名字比ack短33%,而且所有的键都在主行上!

语法

ag [options] pattern [path ...]
ag [可选项] 匹配模式 [路径...]

选项

输出选项:
     --ackmate            以 AckMate-parseable 的格式显示结果
  -A --after [LINES]      显示匹配行之后的行(默认2行)
  -B --before [LINES]     显示匹配行之前的行(默认2行)
     --[no]break          不同文件中匹配到的内容新建一行显示(默认开启)
  -c --count              只显示每个文件中匹配到的数量 (通常与匹配行数不同)
     --[no]color          在结果中打印颜色代码(默认启用)
     --color-line-number  行号的颜色代码(默认值为:1;33)。
     --color-match        匹配结果的颜色代码(默认值为:30;43)。
     --color-path         路径名称的颜色代码(默认值为:1;32)
     --column             打印结果中的列号
     --[no]filename       打印文件名(除非搜索单个文件,否则启用)。
  -H --[no]heading        在每个文件匹配前输出文件名(默认开启)
  -C --context [LINES]    显示匹配行上下两行(默认2行)
     --[no]group          和这些一样: --[no]break --[no]heading
  -g --filename-pattern PATTERN 打印匹配PATTERN的文件名
  -l --files-with-matches 显示包含匹配的文件名(不显示匹配的行)
  -L --files-without-matches  只显示不包含匹配项的文件名
     --print-all-files    打印所有搜索到的文件的标题,甚至那些不包含匹配的文件。
     --[no]numbers        打印行号。默认情况是在搜索流时省略行号。
  -o --only-matching      只输出每行匹配的部分
     --print-long-lines   在很长的行上打印匹配信息(默认:>2k字符)。
     --passthrough        当搜索一个流时,打印所有的行,即使它们不匹配。
     --silent             抑制所有的日志信息,包括错误
     --stats              打印统计(扫描的文件、花费的时间等)。
     --stats-only         打印统计信息,不打印其他信息(与搜索单个文件时的--计数相同)。
     --vimgrep            像vim的:vimgrep /pattern/g那样打印结果(它报告每一行的匹配结果)
  -0 --null --print0      用null分隔文件名(用于'xargs -0')。

搜索选项:
  -a --all-types          搜索所有文件(包括隐藏文件)
  -D --debug              可笑的调试(可能没有用)
     --depth NUM          目录搜索最大深度(默认25)
  -f --follow             跟随链接进行搜索
  -F --fixed-strings      为了与grep兼容,--literal的别名。
  -G --file-search-regex  根据正则匹配搜索指定类型的文件
     --hidden             搜索隐藏文件 (但遵从 .*ignore 文件)
  -i --ignore-case        不区分大小写匹配
     --ignore PATTERN     忽略匹配 PATTERN 的文件/目录(也允许使用文字文件/目录名称)
     --ignore-dir NAME    为了与ack兼容,--ignore的别名
  -m --max-count NUM      在一个文件中最大匹配的数量(默认: 10,000)
     --one-device         不跟随其他设备的链接搜索
  -p --path-to-ignore STRING 在STRING使用.ignore文件
  -Q --literal            不要将PATTERN解析为正则表达式
  -s --case-sensitive     敏感地匹配案例
  -S --smart-case         不区分大小写匹配,除非 PATTERN 包含大写字符
     --search-binary      搜索二进制文件
  -t --all-text           搜索所有文本文件(不包括隐藏文件)
  -u --unrestricted       搜索所有文件 (忽略 .ignore, .gitignore, 比如:搜索二进制和隐藏文件)
  -U --skip-vcs-ignores   忽略VCS的忽略文件(指的是 .gitignore,.hgignore;仍然遵从.ignore)。
  -v --invert-match       反向匹配
  -w --word-regexp        只匹配整个单词
  -W --width NUM          在NUM字符后截断匹配行
  -z --search-zip         搜索压缩文件中的内容

文件类型:
搜索可以限制在某些类型的文件中,例如:
   ag --html needle   结果输出到指定类型文件
   - 在后缀为 .htm、.html、.shtml 或 .xhtml 的文件中搜索“needle”

有关支持的文件类型的列表,可以运行:
  ag --list-file-types  列出支持的文件类型

实例

列出当前目录下包含 npm 的文件

➜  vue-project ag npm ./
README.md
16:npm install
22:npm run dev
28:npm run build

标签:文件,匹配,ag,--,ignore,搜索
From: https://www.cnblogs.com/linuxcmd/p/ag.html

相关文章

  • 将datagridview中查到的数据中部分字段批量更新到数据库中
    在项目只,我们经常会遇到一个需求,就是筛选查询到部分数据后,对查到的datagridview中数据部分字段做一下数据的批量的修改或添加操作比如:这是我查询的数据然后点击保存需要添加箭头所指的数据  代码如下://打开链接SqlConnectionconn=newSqlC......
  • OpenFeature 特性flag 标准协议
    OpenFeature属于cncf一个沙箱项目OpenFeature特性社区驱动的标准协议一个sdk可以支持各种后端目前包含了不少支持工具(包含了开源的以及商业工具)支持不少客户端(目前支持了js,java,golang,c#,php)核心概念OpenFeature提供了一些核心概念Evaluationapi -Evaluationcont......
  • sqlite优化 PRAGMA 命令
    sqlite优化PRAGMA命令 PRAGMAcommand 是一个特殊的命令。它用于修改 SQLite 库操作或查询库以取得内部(非表)数据。PRAGMA命令可以使用与其它SQLite命令(如SELECT、INSERT)相同的接口,只在有如下几个重要方面有所不同:pragma接受一个整数值 value 或一......
  • Jenkins 系列2 --- Node/Agent
    一、概要1.承上启下Jenkins系列2.概念(1)Node/AgentNode节点是Jenkins环境的重要组成部分,它用于执行Pipeline。为了支持分布式CD,Jenkins设计了一个Controller对应多个Node/Agent的架构,Node可以与Controller部署在同一机器上,但是大部分情况应该是位于不同的机器上,甚至这些......
  • QNX-9—QNX官网文档翻译—Resource Managers—Examples
    注:本文翻译自QNXSoftwareDevelopmentPlatform-->Programming-->GettingStartedwithQNXNeutrino-->ResourceManagershttp://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr_examples.html我现在将向您展示一些......
  • QNX-9—QNX官网文档翻译—Resource Managers—Handler routines
    注:本文翻译自QNXSoftwareDevelopmentPlatform-->Programming-->GettingStartedwithQNXNeutrino-->ResourceManagershttp://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr_routines.html并非所有outcalls都......
  • QNX-9—QNX官网文档翻译—Resource Managers—开篇
    注:本文翻译自:http://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr.html 一、本章前言在本章中,我们将了解编写资源管理器需要了解的内容。 资源管理器是QNXNeutrino的另一个显着功能,它允许您通过标准POSIX调用访问......
  • QNX-9—QNX官网文档翻译—Resource Managers—What is a resource manager?
    注:本文翻译自QNXSoftwareDevelopmentPlatform-->Programming-->GettingStartedwithQNXNeutrino-->ResourceManagershttp://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr_What_is.html1.概述资源管理器只......
  • QNX-9—QNX官网文档翻译—Resource Managers—The resource manager library
    注:本文翻译自QNXSoftwareDevelopmentPlatform-->Programming-->GettingStartedwithQNXNeutrino-->ResourceManagershttp://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr_the_resource_manager_librar......
  • Django 使用 ImageKit 进行的ImageField 图像处理
     有图像的话,肯定不知保存,需要改变图像的像素,大小等,这就需要第三方的libpipinstall-Udjango-imagekitpipinstall-UPillow settings.py里面,追加imagekit  ,MEDIA_URL,MEDIA_ROOT model.pyfromdjango.dbimportmodelsfromimagekit.modelsimportImageSp......