问题标签 [ripgrep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
169 浏览

wildcard - 如何使用 RIPGREP 使用通配符进行搜索

使用 ripgrep 在我的文件中查找内容时,我无法使用通配符作为单词。欢迎任何帮助。

具体情况:查找任何以GHJA开头的单词,任何后缀如GHJA129387 GHJA0938094等(可以是字母或数字)。

我尝试使用 GHJA*,但没有奏效。

0 投票
1 回答
539 浏览

search - ripgrep 查找包含多个单词的文件,可能在不同的行?

如果我有如下文件:

是否有关于 ripgrep(或类似)的命令将搜索例如包含 foo 和 bar 的文件?例如,它会显示 file1.txt 而不是其他两个文件?(注意 foo 和 bar 可能不在同一行。)

然后第二个问题,为了更花哨,我可以使用一些语法来计算带有 foo 的文件,但如果它们也包含 bar,则排除它们?所以例如它只会显示file2.txt?

谢谢!

0 投票
0 回答
112 浏览

neovim - 如何保留搜索窗口?

免责声明:我不知道这里所有正确的术语。当我说“窗口”时,它可能是“快速修复模式对话框”之类的。

我正在使用 Neovim(通过 Neovide)并具有这些设置以通过 fzf 插件通过 ripgrep 启用搜索:

在我的环境变量中,我FZF_DEFAULT_COMMAND设置为:

当我执行类似的操作时:Rg fn,会出现一个如下所示的弹出窗口:

在此处输入图像描述

这就是问题所在:当我输入其中一行以关闭窗口并转到目标文件进行更改时,我想在完成后恢复搜索窗口。

我可以点击:然后向上箭头以重新运行搜索,但这可能很烦人,尤其是当有很多结果并且我想将光标保持在上次停止的位置时。当我尝试:copen它只是空的。

有没有办法在窗口中重新打开最后一次搜索,保留状态?(我知道如果我更改某些内容,搜索结果将会过时......没关系)

除了具体问题 - 对于来自 VSCode 等 GUI 编辑器的人,我会很感激在 Neovim UI 中使用搜索的提示。

谢谢!

0 投票
3 回答
130 浏览

bash - 如何从源文件列表中迭代并在我的磁盘驱动器上找到这些文件?我正在使用 FD 和 RIPGREP

我有一个非常长的文件列表,存储在我想在我的驱动器上找到的文本文件(missing-files.txt)中。这些文件分散在我驱动器的不同文件夹中。我想获得任何可以找到的最接近的可用。

丢失文件.txt


这是我的工作 bash 代码:


我的 bash 代码中发生了什么:

  1. 我从我的文件列表中迭代
  2. 我使用FD ( https://github.com/sharkdp/fd ) 命令在我的驱动器中找到这些文件
  3. 然后我将它传送到RIPGREP ( https://github.com/BurntSushi/ripgrep ) 以过滤结果并找到最接近的匹配项。我正在寻找的匹配应该匹配相同的文件和文件夹结构。我只限制一个结果。
  4. 然后最后将其存储在另一个文本文件中,稍后我可以评估列表以进行下一步

我需要帮助的地方:

  1. 这是最有效的方法吗?我有超过 2,000 个文件需要查找。我对其他解决方案持开放态度,这是我刚刚划分的。
  2. 由于某种原因,我的编码坏了,它停止将结果返回到“collected-results.txt”。我的猜测是它在FD命令之后的第二个管道中的某个地方坏了。我没有设置任何条件以防它遇到错误或找不到文件,所以我很难确定。

附加信息:

  • 我正在使用 Mac,并在 Catalina 上运行
  • 显然这不是我的专业领域
0 投票
3 回答
1515 浏览

regex - 加载时出现慢性 ripgrep / vim 插件错误:“-complete Used without -nargs”?

我最近将ripgrep添加到我的vim 插件列表中,并且在安装后立即开始在我加载 vim 时收到此错误消息:

打开有问题的文件并查看第 148-149 行会发现:

我在这里完全没有我的深度,特别是考虑到这个错误是通过简单地安装插件产生的;我对基础文件 ( vim-ripgrep.vim) 进行了 0 次更改。

有没有人在安装 ripgrep 后遇到过类似的慢性错误,如果有,您是如何解决的?

0 投票
1 回答
67 浏览

python - 在bash和子进程上运行时python不同的输出

我正在运行一个脚本,它在内部调用一个 bash 命令并相应地解析输出。例如我正在调用这个命令

我得到这个输出没有任何行号或任何东西

如果我在 bash 中运行相同的命令,我会得到不同的结果

知道为什么会发生这种情况以及我们如何解决这个问题。谢谢

0 投票
1 回答
81 浏览

python - 仅带有文件名的 Grep 摘要

我试图找出一种方法来总结 grep 结果并使用文件名而不是每一行显示结果。我知道 ripgrep 有这个功能。我浏览了 grep 手册页,但找不到类似的东西。

我有一个处理 ripgrep 结果的 python 脚本。如果我能得到类似的结果,希望为 grep 重用相同的脚本

关于我们如何实施的任何建议。

当前 grep 输出

我想得到的输出

0 投票
1 回答
130 浏览

node.js - Node.js 子进程没有给出任何响应或任何错误

我正在尝试在我的 mac 机器上运行的 node.js 应用程序中使用 ripgrep。(VS代码扩展)。

我尝试了 ripgrep-js npm libray 但它没有给出任何响应,并且应用程序只是处于挂起状态。

我尝试调试,发现 ripgrep-js 只是运行 rg 命令并获取其结果并以格式化的方式返回。我尝试运行简单的命令,例如

rg test .

我得到了结果。

但是当我通过 node.js child_process 运行时,它没有给出任何响应。这是我正在运行的代码。

不知道可能是什么原因。我遇到了这个问题child_process.spawn 不会发出任何 与我的 ripgrep 不工作的用例匹配的事件。但目前还不清楚究竟做了什么来解决这个问题。向社区寻求帮助。

为了重现这一点,请使用上面的代码创建 index.js 并使用节点运行node index.js

0 投票
0 回答
53 浏览

vim - Vim ripgrep 搜索管道符号

尝试使用 ripgrep 在 vi​​m 中搜索:Rg例如 '||'。

试过:

但它只匹配每一行的每一列。

根据手册你可以使用--fixed-strings,但是当我这样做时

它仍然忽略任何数量的“s”来抱怨

如何使用Vim Ripgrep搜索||

0 投票
1 回答
56 浏览

regex - 如果字符串以另一个字符串开头,则排除匹配

我有一种感觉,这将作为副本关闭,因为这似乎是一个常见的问题......但在我的辩护中,我已经搜索了 SO 以及谷歌,但找不到任何东西。

我正在尝试使用 ripgrep 搜索 SQL 文件,但我想排除作为单行 SQL 注释一部分的匹配项。

  • 我不需要担心多行/* foobar */注释。只有单行-- foobar
  • 我不需要捕捉任何东西
  • 我不需要担心字符串可能是文本的一部分,比如SELECT '-- foobar'or SELECT '--', foobar。我可以接受那些错误的排除。

匹配示例:

  • 匹配:SELECT foobar
  • 匹配:, foobar
  • 排除:SELECT baz -- foobar
  • 排除:-- foobar
  • 排除:---foobar
  • 排除:-- blah foobar blah

又名,搜索foobar但忽略匹配如果--出现在该行之前的任何点。

我已经尝试过诸如负面后视和其他方法之类的方法,但我似乎无法让它们发挥作用。

这个答案似乎会让我到达那里: https ://stackoverflow.com/a/13873003/3474677

该答案说用于查找不以 . 开头的(?<!grad\()vec匹配项。所以如果我把它翻译成我的用例,我会得到. 这有效......但仅用于排除包含它的行不处理其他场景。vecgrad((?<!--)foobar--foobar

在最坏的情况下,我可以将 ripgrep 的结果通过管道传输到另一个过滤器并排除匹配的行,--.*foobar但我希望找到一个一体化解决方案。