使用sed删除行

0 linux bash shell sed

我有一个如下文件.我想在foo之前删除所有行,但只留下最后一个bar的实例.输入:

bar1
foo
bar1
bar2
bar3
foo
bar5
bar6
bar7
foo
Run Code Online (Sandbox Code Playgroud)

输出:

bar1
foo
bar3
foo
bar7
foo
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我如何实现这一目标.我正在尝试使用sed但我的所有尝试都没有给出任何结果.

Bar*_*mar 6

我希望不必如此sed.使用grep-B选项来打印匹配的行,并在1号线:

grep -B 1 foo input > output
Run Code Online (Sandbox Code Playgroud)

  • @anubhava我愿意打赌这是一个错误的例子. (2认同)