linux - grep 搜索模式中间的上限

标签 linux shell terminal grep

我正在搜索出现 foo 和数字 5、6 或 7 之一的行,但我只想要它们(foo 和上述数字之一)彼此间隔不超过 20 个字符的行。到目前为止,我想出的最接近但无济于事的事情是:

grep -rniE "foo(.*){0,20}[567]" .

我确信我的模式存在一些基本错误,但我现在看不到它。

最佳答案

问题出在这里:

(.*)

* 是贪婪的。您想要匹配任意字符的零到二十个实例。说:

grep -rniE 'foo(.){0,20}[567]' .

关于linux - grep 搜索模式中间的上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20088358/

相关文章:

macos - 了解 xattr -p com.apple.quarantine 的输出

linux - 如何将在 vagrant 机器上运行的 firefox 转发到本地机器?

android - 在 Android : "not found" 上安装预构建的二进制文件

shell - 在 Windows Powershell 和命令提示符中推送

bash - 将命令作为输入传递给另一个命令(su、ssh、sh 等)

c++ - 将多个工具作为单个 bash 脚本运行

c++ - 如何将彩色文本输出到 Linux 终端?

database - Oracle SID 和服务名称;连接问题

linux - 根据unix中的模式将单行拆分为多行

c - Bash 在简单程序上重新打开 tty