我使用egrep
该-o
选项是为了获取该行的匹配部分,例如
cat /usr/share/dict/words | egrep -o '(aa|ii)'
现在我想查看比赛的一些上下文,即左侧和右侧的一些字符。实现这一目标的一种方法是
cat /usr/share/dict/words | egrep -o '.{3}(aa|ii).{2}'
有没有更好(更高效、更优雅)的方法? (我已经浏览了egrep
命令行选项,但没有找到用于此目的的选项。)
答案1
你可以这样做:
$ echo 'aabiicaa' | perl -lne '
while (/aa|ii/g) {print substr($`,-3)."[$&]".substr($'\'',0,2)}'
[aa]bi
aab[ii]ca
iic[aa]