问题:
在没有 pcregrep 的情况下,如何在文件中找到多行正则表达式的匹配项?
我需要查找/打印每次出现的位置。
不幸的是,pcgrep 不存在,我无权安装它。其他选择是grep
perl
sed
python
等。
要搜索的正则表达式示例如下:
Text\nLine
语境:
一个脚本在几十个文件中提供了数百 MB 的结构化文本,但遗憾的是缺少一些行(由于多种原因)。我确实需要检查这些行在哪里丢失,从而搜索前一行和下一行的顺序。
Text
Missing //this line is sometimes missing.
Line
编辑:
可能的输入
例子.txt
Text
Missing
Line
Text
Missing
Line
Text
Line
Text
Missing
Line
可能的输出:
example.txt,第 10 行
一些没有成功的尝试:
pcregrep
# command not found
apt-get install pcregrep
# no permission, no su credentials, distro don't provide pcregrep, outdated sources, customer does not want changes on the serve, etc.
sed -r 's#(Text\nLine)#\1#' ./*
# print all lines, not only matches, no indication of file or line, etc.
grep 'Text\nLine' ./*
# Does not works on multi-lines
sed -n '/Text/,/Line/{p}' ./*
# Not the same regex, does not indicate result lines, etc.