command-line - 使用 Silver Searcher 搜索文件和文件名

标签 command-line terminal grep command-line-interface ack

使用 Silver Searcher,我如何搜索:

  • 带有单词或模式的(非二进制)文件
  • 所有文件名,带有一个单词或模式,包括二进制文件的文件名。

  • 其他偏好:想要不区分大小写的搜索和搜索点文件。

    尝试使用此别名但运气不佳:
    alias search="ag -g $1 --smart-case --hidden && ag --smart-case --hidden $1"

    最佳答案

    根据 ag 的手册页

       -G --file-search-regex PATTERN
              Only search files whose names match PATTERN.
    

    您可以使用 -G选项对匹配模式的文件执行搜索。

    所以,回答你的问题:
    root@apache107:~/rpm-4.12.0.1# ag -G cpio.c size
    rpm2cpio.c
    21:    off_t payload_size;
    73:    /* Retrieve payload size and compression type. */
    76:     payload_size = headerGetNumber(h, RPMTAG_LONGARCHIVESIZE);
    

    上面的命令搜索词 size在与模式匹配的所有文件中 cpio.c
    引用:ag 的手册页版本 0.28.0

    注 1:

    如果您要查找某些文件类型中的字符串,例如所有 C 源代码,有一个 undocumented featureag帮助您快速限制对某些文件类型的搜索。

    下面的命令都查找 foo在所有 php 文件中:

    find . -name \*.php -exec grep foo {}
    ag --php foo
    

    虽然 find + grep寻找所有 .php文件,--phpag 中切换命令实际上查找以下文件扩展名:
    .php  .phpt  .php3  .php4  .php5  .phtml
    

    您可以使用 --cpp对于 C++ 源文件,--hh.h文件,--js用于 JavaScript 等。完整列表可以在 here 中找到。

    关于command-line - 使用 Silver Searcher 搜索文件和文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18713316/

    相关文章:

    macos - Ubuntu 上的 findutils 4.4.x 不允许我指定 `depth` 选项

    java - Runtime.getRuntime().exec() 不执行某些命令

    c - ncurses 和 C- 在 ncurses 窗口中显示 'df' 命令的输出

    windows - 从命令行转到 Atom 编辑器中的行

    awk - 通过 awk 或 grep 进行文件处理

    linux - 如何并行化我的 bash 脚本以与 `find` 一起使用而不面临竞争条件?

    unix - 将输入与输出连接到 svn list 命令,然后将其传递给 grep

    python - 使用 LibreOffice/OpenOffice 将 docx 转换为 pdf

    java - 尝试运行 JUnit 测试运行程序时出错

    java - 在 Windows 10 上从命令行运行 java 程序