Bash 类似grep的命令,用于查找匹配线和邻域线

Bash 类似grep的命令,用于查找匹配线和邻域线,bash,grep,Bash,Grep,grep命令非常强大,我经常使用它 有时,我需要找到一些东西,让grep在许多文件中查找,以找到我几乎不记得自己使用的字符串-I(忽略大小写)选项、-r(递归)以及-v(排除) 但是我真正需要的是grep的一个特殊输出,它突出显示匹配线加上邻域线(给定匹配线,比如说,我想看到前面的两行和后面的两行) 有没有办法使用bash获得这个结果 本身就可以做到这一点 grep -A 2 -B 2 foo myfile.txt 大多数grep允许使用“context”标志,使其更具可读性: grep --

grep命令非常强大,我经常使用它

有时,我需要找到一些东西,让grep在许多文件中查找,以找到我几乎不记得自己使用的字符串-I(忽略大小写)选项、-r(递归)以及-v(排除)

但是我真正需要的是grep的一个特殊输出,它突出显示匹配线加上邻域线(给定匹配线,比如说,我想看到前面的两行和后面的两行)

有没有办法使用bash获得这个结果

本身就可以做到这一点

grep -A 2 -B 2 foo myfile.txt
大多数grep允许使用“context”标志,使其更具可读性:

grep --context=3 foo myfile.txt
你可以省略-C

grep -2 foo myfile.txt
等于

grep -C 2 foo myfile.txt

别忘了
-c2
,意思是
-a2-b2
。另外,你在运行什么操作系统?例如,Solaris10有一个非常有限的grep,它不能做到这一点。很好,这比第一个答案更清楚。这正是我想要的@Gringo Suave,这是您的-C选项的非契约形式。