是否可以打印搜索模式结果直到它在终端中遇到空白换行符?

是否可以打印搜索模式结果直到它在终端中遇到空白换行符?

举例来说,我有一个包含如下内容的文件:

# TODO: Optimize this.
alias bash='start bash'

# FIXME: Just fix this.
alias fix='there is something wrong with this

我想要的是,如果我搜索模式,TODO:它应该只打印如下结果:

# TODO: Optimize this.
alias bash='start bash'

这可能吗?

答案1

awk 输入段落模式:

awk -vRS= '/TODO:/' file

答案2

重复的https://stackoverflow.com/questions/13534306/how-can-i-set-the-grep-after-context-to-be-until-the-next-blank-line

但你需要sed按照帖子中的建议:

sed -n '/pattern/,/^$/p' file

答案3

grep解决方案。

grep -zoP '(?s)^# TODO.*^$' file

相关内容