此问题已在此处有答案:
Python - Locating the position of a regex match in a string?(3个答案)
4天前关闭。
此帖子4天前编辑并提交审核,未能重新打开帖子:
原始关闭原因未解决
我有一个要求,我必须得到文件名,行号,匹配位置(字节偏移量)的模式在文件中。
我正在使用grep
命令,到目前为止,我能够获得文件名和行号没有问题,但无法单独获得每行的匹配位置。
在grep
中有一个-b
选项,它给出了字节偏移量,但并没有单独给出每行的结果。
在下面尝试:
grep --with-filename -n -r -E -o "pattern" file.txt
这将给出文件名和行号沿着匹配线。
grep --with-filename -n -r -E -o -b "pattern" file.txt
这给出了字节偏移量(行中匹配的位置),但它将整个文件视为一行并给出结果,但我需要从该行开始的每行的位置结果,而不是文件的开始。
例如:file.txt
abc
def
xyzva
检索模式:一个
预期结果:
file.txt:1:0:abc
file.txt:3:4:xyzva
如果Python中有任何其他解决方案,也是可以接受的。
1条答案
按热度按时间kupeojn61#
如果您同意位置以
1
开头(与0
相对),则可以使用ripgrep您可以使用
awk
来实现更可定制的解决方案: