如何匹配字符串,并显示字符串下的两行
例如(我想匹配“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 行