是否有一种简单的解决方案也可以提取匹配的单词之前的一个单词和之后的一个单词?例如,假设以下文本

... put returns between paragraphs ...
... the function returns void ...
returns 的搜索应该返回
put returns between
function returns void

我不是 bash 专家,但可以将以下内容放在一起
grep -o -P "(?:[a-zA-Z'-]+[^a-zA-Z'-]+){1}returns(?:[^a-zA-Z'-]+[a-zA-Z'-]+){1}" TEXT.FILE

但不确定这是否能解决所有问题。

最佳答案

只需告诉 grep 只匹配 <word> + returns + <word> :

$ grep -Eo '\w+ returns \w+' file
put returns between
function returns void

关于regex - 匹配前后的Grep词?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40884950/

10-16 06:14