问题标签 [pcregrep]

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 投票
11 回答
142275 浏览

linux - 如何在文件中搜索多行模式?

我需要找到所有包含特定字符串模式的文件。想到的第一个解决方案是使用带有xargs grep的find管道:

但是,如果我需要找到跨越多行的模式,我会被卡住,因为 vanilla grep 无法找到多行模式。

0 投票
3 回答
226 浏览

regex - 在命令行匹配多行字符串:如果模式匹配,则返回某行,否则返回空字符串

当“成功”时,我的命令输出采用以下形式:

但是,此命令可能会发出类似这样的信息(“失败”):

或者,这个(另一个“失败”):

对于第一个示例,我想发出:

对于其他两个示例,我想发出空字符串。

我试过这个,这对第三个例子很有用:

但是对于它发出的前两个示例:

我不知道该怎么办。我上面的正则表达式是尝试匹配前导/ > -------但不捕获它,然后仅在下一行后面没有以换行符结尾的另一行时才匹配。除了解决这个问题,我还可以使用其他东西pcregrep,但我无法用awkor来表达这一点sed。我会使用 Python,但它对我的需要来说太慢了。有什么帮助吗?

0 投票
1 回答
6046 浏览

bash - 使用 pcregrep -M 搜索多行字符串

我正在尝试使用pcregrep -M搜索多行字符串。

这是我脚本中的一行:

myFile包含多行形式:

我得到一个空字符串,仅lineNumber此而已。

我究竟做错了什么?

我应该期望返回值是什么?不应该-n给我行号吗?如果是这样,第一行还是第二行?

我应该使用awkorsed代替,如果是的话怎么办?

0 投票
2 回答
133 浏览

regex - 在 Regex lookbehind (pcregrep) 中定义给定数量的选项卡

我使用 pcregrep 在 html 代码中查找多行模式。

我尝试匹配类似于此的内容:

行首与行首之间sometext的间距正好等于六个制表符。由于表达式\s匹配制表符、换行符和空格,我认为

会为我做这项工作。但它没有(我添加了一个额外的休息时间)。我实际上尝试了这个数字的几种变体,但都不起作用。

我监督了什么?

编辑:

匹配之前应该sometext没有任何空格。

0 投票
2 回答
303 浏览

awk - 在 awk 或 sed 中转换 pcregrep 命令

我有一个多行匹配的 pcregrep 命令,我想将其转换为 awk 或 sed 命令,因为我需要在 pcregrep 不可用的机器上使用它(OS X)。

原始命令:

它输出包含字符串“baseTX”的接口名称(我发现的唯一方法可以可靠地找出 MacBook 上以太网接口的名称)。就我而言,“en4”。

输入文本如下所示:

如何使用 awk 或 sed 获取“en4”?我尝试了一个小时,但我只是不擅长 sed 和 awk。

0 投票
3 回答
709 浏览

python - Python多行模式匹配

我正在尝试通过 python 使用 shell 命令匹配多行模式。

我可以使用 shell 命令进行匹配,但我无法通过 Python subprocess.call 或 os.system 模块传递此命令。

我的文件看起来像这样:

不,我试图提取这个:

使用这个正则表达式:

其中 U2 是搜索字符串,sdf/c1_syn_buf2.sdf 是文件名

在 Python 中,我定义了一个函数,我将向其传递搜索字符串和文件名,因为我必须多次执行此操作。

我无法使用以下命令成功地将其作为 shell 命令执行:

当我实际输入参数(在本例中为 U2)名称和文件名时,我能够获得所需的输出。

编辑 如果 pcregrep 不够友好,这里是 awk 命令:

返回相同。

有人可以帮我吗?

0 投票
1 回答
700 浏览

regex - pcregrep 匹配在第一次出现时停止

我正在使用“pcregrep”在 UNIX 中实现多行搜索。我希望匹配在第一次出现时停止。

例如,如果我在文件中有以下文本:

我想打印到'name'之后第一次出现'ain'。所以我只需要打印:

我正在执行:

但是我得到的输出为:

0 投票
2 回答
96 浏览

regex - Matching 3+ Title Case Word in a single pcre expression

I am looking for a single pcre (ver. 3.85) compatible regular expression that matches a string composed of three or more title case words but does not match any string containing words starting with lower-case letter. E.g.:

Tried

with no success.

Any hint?

0 投票
3 回答
239 浏览

regex - 包含一行任何内容的多行模式

我需要计算htm 文件中 3 行的多行模式的出现。问题是我在第 1 行和第 3 行有一个修复内容但是第2 行的内容不是修复的,它可以更改(文件是日志)。这是我的意思的一个例子:

我已经搜索了解决方案,但还没有找到 100% 合适的解决方案……pcregrep应该可以,但是如何包含更改的第 2 行?到目前为止,我只能寻找两条修复线。代码本身就是这里的问题输出对我来说很容易使用

还是我应该sed改用?代码有效,但输出使用起来很复杂。如何处理它来计算这种多线模式的出现次数?因为在第 1 行和第 3 行之间必须只有一行,所以这很重要。

我希望你能帮助我。非常感谢你!

0 投票
1 回答
152 浏览

regex - 如何使用 pcregrep 检查具有重复字符串的长文件

这是我在这里的第一篇文章,这是个好地方,对我有很大帮助!

所以我正在使用 pcregrep,我想用我的模式捕获文件。我正在为正则表达式使用变量,例如:

然后搜索文件:

您可以在此处找到要匹配的 test.sh(我正在使用的 bash 文件)和 *.php1 文件:http: //sendrev.com/stackoverflow/

当我运行 sh test.sh 它总是找到行(我看到它是彩色的,因为我正在使用--colour=auto):

(或其他,但不显示文件结尾)

我无法匹配更多的行,我不明白为什么。我想将最后一行与以下内容匹配:

或者

但我不能去那条线。如果我将 "));\?>" 添加到 "test" 变量的末尾,则找不到任何内容,因为它无法转到最后一行。

!!!重要的是,如果行'.*'.数远少于一切都可以。看起来有一些我无法理解的限制。

如果你有 CentOS 或其他 linux 发行版,你可以测试它。

你能帮我从我这边搜索错误吗?谢谢。