我想删除上面 2 行、下面 1 行,并从 Linux 的日志文件中删除匹配的模式行。
以下是文件,
猫文件
这是第一个
这是第二个
这是第三个
这是第四个
这是第五个
这是第六个
这是七
这是八个
这是九个
这是第一个
这是第二个
这是第三个
这是第四个
这是第五个
这是第六个
这是七
这是八个
这是九个
预期产出,
猫想要的_输出
这是第一个
这是第六个
这是七
这是八个
这是九个
这是第一个
这是第六个
这是七
这是八个
这是九个
尝试使用 grep -B 2 -A 1 -v“这是第四个”,但它不起作用。
使用
awk
:
pat="$(grep -B2 'this is fourth' file | head -n1)"
awk -v pat="$pat" 'BEGIN{p=1} ($0 ~ pat){p=0} /^$/ || /this is sixth/{p=1} p' file