我想写一个shell脚本,它可以找到一个特定的单词并获取以下行的内容。
例如我有一个文件:
...[not interested info]...
Keyword: YES
wanted line 1
wanted line 2
wanted line 3
...[not interested info]...
我想搜索关键字'YES'并得到以下3行(假设后面的行数是固定的,在这种情况下是3):
wanted line 1
wanted line 2
wanted line 3
我知道如何使用grep来获取关键字的行,但不知道如何获取以下行。
答案 0 :(得分:2)
怎么样
grep -A 3 YES
在-A 3
之后打印3行尾随上下文(YES
)。
答案 1 :(得分:0)
我正在思考以下几点:
while read line
do
if [ "" != `grep YES $line` ]; then
echo read line
echo read line
echo read line
fi
done
这很糟糕,但我不知道有任何更优雅的方式。本质上,这只是逐行读取文件并检查每行上的grep输出,而不是让grep单独遍历整个文件。