solaris 10 + grep 匹配后显示2行?

solaris 10 + grep 匹配后显示2行?

如何匹配字符串,并显示字符串下的两行

例如(我想匹配“manufacture”字符串并显示后面的两行

cat ima.conf   

# the manufacturer or driver author.

com.sun.ima             /usr/lib/libsun_ima.so.1
com.sun.ima64           /usr/lib/64/libsun_ima.so.1
# Format:
#
# <library name>  <library pathname>
#

所以我只会得到以下几行:

com.sun.ima             /usr/lib/libsun_ima.so.1
com.sun.ima64           /usr/lib/64/libsun_ima.so.1

答案1

这是一个awk解决方案:

grep="pattern" # the string where we begin
max=4          # the number of lines after the matched pattern
awk '/'"$grep"'/{l=1;count=NR;next} l>0 && NR-count < '"$max"+1' {print}'

(已测试Solaris11

答案2

这个可以在Solaris上运行:

ggrep -A 2 'pattern' fileNames.ext

例如:

ggrep -A 5 -i 'pyCharm' myfile.txt

--- 将从文件 myfile.txt 中搜索不区分大小写的模式“pyCharm”,匹配项前有 3 行,匹配项后有 5 行

相关内容