如何轻松打印匹配行之前的行并跳过匹配行本身?grep
命令中的-A
、-B
和-o
选项均无法解决此问题。也许需要一些awk
魔术?
例如:
$ cat foo.txt
bar
foo
baz
foo
$ cat foo.txt | grep foo-SOMETHING
bar
baz
编辑
- 如果第二和第三行都包含“foo”,则应打印第一和第二行(尽管我在这里不是非常严格)。
附加功能:考虑以下示例:
bar
foo
baz
foo
foo
理想情况下应该返回
bar
baz
foo