如何使用 grep 显示匹配模式的上一行而不是匹配行?

sys*_*end -1 linux grep regular-expression

我知道我可以使用-A,-B-C显示周围的线,但它们也都显示匹配的线。在这个示例文件中,我想要做的是:

foo
bar
Run Code Online (Sandbox Code Playgroud)

我会做类似的事情grep <option> "bar" file,我的输出应该是
foo

旁注:我知道如何与另一个人一起做grep或使用sed,但我想只使用一次grep

cuo*_*glm 5

对于以下人员来说,这是一项相当艰巨的工作sed

$ printf 'foo\nbar\n' | sed -n '$!N;/\nbar$/P;D'
foo
Run Code Online (Sandbox Code Playgroud)