2

我想编写一个 shell 脚本,在特定目录(例如,我的 '.config' 文件夹)中的所有文件中搜索模式。使用 grep 我写了以下内容:

grep -Ril "<pattern>" .config

接下来,我尝试使用以下方式动态更改搜索模式:

grep -Ril "" .config | fzf --preview='<preview> {}'

,但由于我将文件名传递给 fzf - 我只能按名称过滤结果......

基本上我正在寻找类似的东西:

grep -Ril "<fzf_pattern>" .config | fzf --preview='<preview> {}'
4

2 回答 2

0

你可以做:

grep -R "$(find .config/* -type f -exec cat {} \; | fzf)" .config/
于 2021-04-09T10:50:03.600 回答
0

有些人建议使用ugrep与基于 grep 的工具进行模糊匹配,如下所示:

ugrep -Q -Z+4 -Ril .config

-Q在终端中启动查询 UI 以输入模糊模式并-Z+4模糊匹配最多 4 个额外字符。您还可以-Z通过按Alt-[减少和Alt-]增加模糊度来使用 UI 中的值。按F1Ctrl-Z进入帮助页面。要获取按最佳匹配排序的匹配文件列表,请添加选项--sort=best.

于 2022-01-06T17:38:50.050 回答