【发布时间】:2013-07-30 09:51:24
【问题描述】:
如何轻松打印匹配上方的行并跳过匹配本身? grep-A、-B 和-o opt 不解决。也许是一些awk 魔法?
例如:
$ cat foo.txt
bar
foo
baz
foo
$ cat foo.txt | grep foo-SOMETHING
bar
baz
编辑
- 如果第 2 行和第 3 行有“foo”,则应该打印第 1 行和第 2 行(虽然我这里不是很严格)
附加功能:考虑示例:
bar
foo
baz
foo
foo
理想情况下应该返回
bar
baz
foo
【问题讨论】:
-
-B有什么问题? -
@AdrianFrühwirth 它打印前一行和匹配行。
-
两条连续线都匹配
foo怎么样?打印第一行?还是两者都忽略? -
@Barmar:我知道这一点,但这可以解决。