问题标签 [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.
python - 操纵 txt 搜索三种模式(sed、awk、pcregrep)
我有这个文本文件
我想从这个文件中只提取 txt :
在这种情况下,我只想匹配那个
我尝试使用不同的解决方案
但它会提取 AAAA 和 FF 之间的所有 txet
我该如何解决?
感谢帮助
编辑:
在欧元线和FF之间可能有一些文字。不知道多少行。。
我想提取 AAAA 和 FF 之间的 txt
python - Python:为对 pcregrep 多行的子进程调用制作匹配模式列表
TLDR:有没有一种干净的方法来为 subprocess.check_output('pcregrep', '-M', '-e', pattern, file) 制作条目列表?
我正在使用 pythonsubprocess.check_output()
来调用pcregrep -M
. 通常我会通过调用来分隔结果,splitlines()
但由于我正在寻找多行模式,所以这不起作用。我很难找到一种干净的方法来创建匹配模式列表,其中列表的每个条目都是一个单独的匹配模式。
这是一个简单的示例文件,我正在 pcgrep'ing
这是(一些)我的python代码
这是输出
如果我能做类似的事情就好了
没有创建垃圾来清理(空白列表条目),甚至没有一个split()
独立于模式的分隔符。
有没有一种干净的方法来创建匹配的多行模式列表?
regex - Pcregrep 包含文件扩展名错误
我正在使用 pcregrep 搜索多行模式,我只希望 pcregrep 搜索具有特定文件扩展名的文件,即
pcregrep -Mrl --include=*.sv -e '<my_multi-line_pattern>' /path/to/search
但是,这会引发错误:pcregrep: Error in 'include' regex at offset 0: nothing to repeat
.
我试过转义和双重转义*
无济于事。这种语法似乎适用于 grep
grep -rl --include=*.sv '<my_single-line_pattern>' /path/to/search
非常感谢任何帮助或提示。
编辑:示例多行模式:'(?s)^\salu.*\.opa_i('
应该匹配
xml - 使用源文件中的数据从 XML 文件中获取块
我修改了这个问题,因为我已经阅读了一些关于 XML 的内容。
我有一个包含 AuthNumbers 列表的文件源文件。
111222
111333
111444
etc.
我需要搜索该列表中的数字并在相应的 XML 文件中找到它们。在 xml 文件中,该行的格式如下:
<trpcAuthCode>111222</trpcAuthCode>
这可以使用 grep 轻松实现,但是我需要包含交易的整个块。
该块以:
<trans type="network sale" recalled="false">
或<trans type="network sale" recalled="false" rollback="true">
和/或其他一些变体开头。实际上<trans*>
,如果这样的事情是可能的,那将是最好的。
该块以</trans>
它不需要优雅或高效。我只需要它工作。我怀疑一些交易正在退出,我需要一种快速的方法来审查那些没有被处理的交易。
如果有帮助,这里是原始(已消毒)xml 的链接 https://www.dropbox.com/s/cftn23tnz8uc9t8/main.xml?dl=0
我想提取的内容: https ://www.dropbox.com/s/b2bl053nom4brkk/transaction_results.xml?dl=0
每个结果的大小会有所不同,因为每笔交易的长度可能会根据购买的产品数量而有很大差异。在结果 xml 中,您会看到我根据 trpcAuthCode 列表 111222、111333、111444 提取了所需的 xml。
linux - 查找与位于不同行中的模式匹配的文件
我正在做一个程序,它可以找到与用户给出的两种模式(日期和 ID)匹配的文件,这两种模式都位于每个文件内的不同行中。这些文件位于不同的 .zip 子文件夹中。我的代码不起作用,我正在尝试使用 PCRE DOTALL。
文件样本:
我正在使用的代码:
regex - 正则表达式搜索模式并输出多行直到另一个模式
我有一个日志文件,其中每个日志都遵循一个模式:
Date [FLAG] LogRequestID : Content
每个日志的内容部分可能跨越多行。给定一个 LogRequestID,我需要搜索所有事件,并获取整个日志。我需要使用 perl、awk、sed 或 pcregrep 来完成此操作。
示例输入(注意日志之间没有空行):
2017 年 5 月 24 日 17:00:06,827 [INFO] 123456 (Blah : Blah1) Service-name:: Single line content
2017 年 5 月 24 日 17:00:06,828 [INFO] 567890 (Blah : Blah1) 服务名称:: 内容(可能跨越多行)
2017 年 5 月 24 日 17:00:06,829 [INFO] 123456 (Blah : Blah2) 服务名称:多行内容。打印对象[ ID1=fac-adasd ID2=
123231 ID3=123108 Status=Unknown
Code=530007 Dest=CA
]2017 年 5 月 24 日 17:00:06,830 [INFO] 123456 (Blah : Blah1) Service-name:: Single line content
2017 年 5 月 24 日 17:00:06,831 [INFO] 567890 (Blah : Blah2) 服务名称:: 内容(可能跨越多行)
给定搜索键 123456 我想提取以下内容:
2017 年 5 月 24 日 17:00:06,827 [INFO] 123456 (Blah : Blah1) Service-name:: Single line content
2017 年 5 月 24 日 17:00:06,829 [INFO] 123456 (Blah : Blah2) 服务名称:多行内容。打印对象[ ID1=fac-adasd ID2=
123231 ID3=123108 Status=Unknown
Code=530007 Dest=CA
]2017 年 5 月 24 日 17:00:06,830 [INFO] 123456 (Blah : Blah1) Service-name:: Single line content
使用 grep 给了我单行日志,但只给了我多行日志的一部分。
我尝试在搜索模式之后检查几行,使用 awk,并检查是否到达了另一个日志,但它变得低效。我需要某种可以与 pcregrep 或 perl 甚至 awk 一起使用的正则表达式来获取此输出。
请帮帮我,因为我对正则表达式很不好。
javascript - 如何使用正则表达式突出显示文本
我正在尝试编写一个脚本来帮助在与正则表达式匹配时突出显示。下面是我现在做的例子。
上面代码的输出是
我想要的输出是
我想知道的是,反正写一个正则表达式包含正则表达式和提供的单词?或者有任何其他方法可以解决这个不正确的替换问题。
bash - bash 函数中的 pcregrep 无法正常工作
我正在做一个检查配置文件的脚本。为了一次检查多行,我使用了 pcregrep。当我在命令行中使用它时,一切都很好。
当我把它放在一个函数中时,它并没有找到模式。
这是我的功能
它echo pcregrep -M "$string" $path
只是一个控件来验证它是否需要pcregrep
命令获取好的变量
当我使用函数执行文件时,控制台中有以下内容
有趣的是:当我复制粘贴
/li>echo pcregrep -M "$string" $path
控制台中显示的结果时,即:
它就像一个魅力
更新:实际上我正在尝试解析 CSV 文件中的正则表达式和路径,下面的行是列名和文件内容的示例:
这是读取 CSV 文件的函数,并在第一列中调用一个函数或另一个函数:
我希望它可以帮助解决问题。
我错过了什么??????
提前致谢
linux - 如何在 pcregrep 中仅显示第一个匹配项?
我在日志文件中有 xml,看起来像:
所以,我需要从日志文件中删除这个 XML,我正在尝试这样做:
但是在这之后我没有得到两个ServiceRs xml,我得到了这个:
我知道,我可以修改模式 - (\n|.)* -> (\n|.){0, n),但我真的不知道 xml 中有多少行。
regex - 从文本文件中获取特定行到另一个文本文件
我有一个包含很多行的纯文本文件,我试图只获取以|V|
和开头的行runtime
我试过的:
没有任何效果。我会得到一个空文件或重复相同的文件。