Solaris 更好,但我更喜欢 Linux 或我可以编译的版本。有这样的系统吗?
答案1
您可以从以下位置获取 GNU grep 及其 Solaris 依赖项sunfreeware.com可以作为 pkg 格式的二进制下载安装在 /usr/local/bin 中,也可以作为源包安装。
答案2
就 GNU grep 而言,这将显示匹配前的行数:
# grep -B number
相当于之后:
# grep -A number
您可以在这里下载 GNU Grep:http://www.gnu.org/s/grep/
答案3
一个小的 awk 脚本也可以起作用:
#!/usr/bin/awk -f
BEGIN { context=3; }
{ add_buffer($0) }
/pattern/ { print_buffer() }
function add_buffer(line)
{
buffer[NR % context]=line
}
function print_buffer()
{
for(i = max(1, NR-context+1); i <= NR; i++) {
print buffer[i % context]
}
}
function max(a,b)
{
if (a > b) { return a } else { return b }
}
/pattern/
用要搜索的实际正则表达式或模式替换。