我遇到的问题是我在比赛后获得了太多信息
grep -RnisI --color=auto "pseudomonas" *
我只想在比赛前后获取 20 个字符或 10 个单词。
做这样的事情的正确工具是什么?
答案1
cat file.txt | grep -o -P '.{0,20}string.{0,20}'
这应该适合你
更新:
如果你不想 cat,你可以使用 grep 并以文件作为参数:
grep -o -P '.{0,20}pseudomonas.{0,20}' FileName.html
另外,-P 使用 Perl Regex,手册页说这是实验性的,如果你想避免该标志,你可以使用egrep代替:
grep -Eo '.{0,20}yourstring.{0,20}' yourtestfile.txt
答案2
pcregrep -MnirIso '(?s).{0,20}pseudomonas.{0,20}' . |
grep --color -e '^' -e pseudomonas
假设匹配且它们的上下文不重叠并且文件名不包含pseudomonas
.
另请注意,报告的行号是上下文开头的行号。