问题标签 [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.
linux - 如何在文件中搜索多行模式?
我需要找到所有包含特定字符串模式的文件。想到的第一个解决方案是使用带有xargs grep的find管道:
但是,如果我需要找到跨越多行的模式,我会被卡住,因为 vanilla grep 无法找到多行模式。
regex - 在命令行匹配多行字符串:如果模式匹配,则返回某行,否则返回空字符串
当“成功”时,我的命令输出采用以下形式:
但是,此命令可能会发出类似这样的信息(“失败”):
或者,这个(另一个“失败”):
对于第一个示例,我想发出:
对于其他两个示例,我想发出空字符串。
我试过这个,这对第三个例子很有用:
但是对于它发出的前两个示例:
我不知道该怎么办。我上面的正则表达式是尝试匹配前导/ > -------
但不捕获它,然后仅在下一行后面没有以换行符结尾的另一行时才匹配。除了解决这个问题,我还可以使用其他东西pcregrep
,但我无法用awk
or来表达这一点sed
。我会使用 Python,但它对我的需要来说太慢了。有什么帮助吗?
bash - 使用 pcregrep -M 搜索多行字符串
我正在尝试使用pcregrep -M
搜索多行字符串。
这是我脚本中的一行:
myFile
包含多行形式:
我得到一个空字符串,仅lineNumber
此而已。
我究竟做错了什么?
我应该期望返回值是什么?不应该-n
给我行号吗?如果是这样,第一行还是第二行?
我应该使用awk
orsed
代替,如果是的话怎么办?
regex - 在 Regex lookbehind (pcregrep) 中定义给定数量的选项卡
我使用 pcregrep 在 html 代码中查找多行模式。
我尝试匹配类似于此的内容:
行首与行首之间sometext
的间距正好等于六个制表符。由于表达式\s
匹配制表符、换行符和空格,我认为
会为我做这项工作。但它没有(我添加了一个额外的休息时间)。我实际上尝试了这个数字的几种变体,但都不起作用。
我监督了什么?
编辑:
匹配之前应该sometext
没有任何空格。
awk - 在 awk 或 sed 中转换 pcregrep 命令
我有一个多行匹配的 pcregrep 命令,我想将其转换为 awk 或 sed 命令,因为我需要在 pcregrep 不可用的机器上使用它(OS X)。
原始命令:
它输出包含字符串“baseTX”的接口名称(我发现的唯一方法可以可靠地找出 MacBook 上以太网接口的名称)。就我而言,“en4”。
输入文本如下所示:
如何使用 awk 或 sed 获取“en4”?我尝试了一个小时,但我只是不擅长 sed 和 awk。
python - Python多行模式匹配
我正在尝试通过 python 使用 shell 命令匹配多行模式。
我可以使用 shell 命令进行匹配,但我无法通过 Python subprocess.call 或 os.system 模块传递此命令。
我的文件看起来像这样:
不,我试图提取这个:
使用这个正则表达式:
其中 U2 是搜索字符串,sdf/c1_syn_buf2.sdf 是文件名
在 Python 中,我定义了一个函数,我将向其传递搜索字符串和文件名,因为我必须多次执行此操作。
我无法使用以下命令成功地将其作为 shell 命令执行:
当我实际输入参数(在本例中为 U2)名称和文件名时,我能够获得所需的输出。
编辑 如果 pcregrep 不够友好,这里是 awk 命令:
返回相同。
有人可以帮我吗?
regex - pcregrep 匹配在第一次出现时停止
我正在使用“pcregrep”在 UNIX 中实现多行搜索。我希望匹配在第一次出现时停止。
例如,如果我在文件中有以下文本:
我想打印到'name'之后第一次出现'ain'。所以我只需要打印:
我正在执行:
但是我得到的输出为:
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?
regex - 包含一行任何内容的多行模式
我需要计算htm 文件中 3 行的多行模式的出现。问题是我在第 1 行和第 3 行有一个修复内容,但是第2 行的内容不是修复的,它可以更改(文件是日志)。这是我的意思的一个例子:
我已经搜索了解决方案,但还没有找到 100% 合适的解决方案……pcregrep
应该可以,但是如何包含更改的第 2 行?到目前为止,我只能寻找两条修复线。代码本身就是这里的问题,但输出对我来说很容易使用。
还是我应该sed
改用?代码有效,但输出使用起来很复杂。如何处理它来计算这种多线模式的出现次数?因为在第 1 行和第 3 行之间必须只有一行,所以这很重要。
我希望你能帮助我。非常感谢你!
regex - 如何使用 pcregrep 检查具有重复字符串的长文件
这是我在这里的第一篇文章,这是个好地方,对我有很大帮助!
所以我正在使用 pcregrep,我想用我的模式捕获文件。我正在为正则表达式使用变量,例如:
然后搜索文件:
您可以在此处找到要匹配的 test.sh(我正在使用的 bash 文件)和 *.php1 文件:http: //sendrev.com/stackoverflow/
当我运行 sh test.sh 它总是找到行(我看到它是彩色的,因为我正在使用--colour=auto
):
(或其他,但不显示文件结尾)
我无法匹配更多的行,我不明白为什么。我想将最后一行与以下内容匹配:
或者
但我不能去那条线。如果我将 "));\?>" 添加到 "test" 变量的末尾,则找不到任何内容,因为它无法转到最后一行。
!!!重要的是,如果行'.*'.
数远少于一切都可以。看起来有一些我无法理解的限制。
如果你有 CentOS 或其他 linux 发行版,你可以测试它。
你能帮我从我这边搜索错误吗?谢谢。