如何使用 awk 删除文件中某些内容的第一个实例?

如何使用 awk 删除文件中某些内容的第一个实例?

如果我有一个包含多行的文件

...
  end
...
  end
...
  end
...

我怎样才能只删除第一个实例?

到目前为止我已经尝试过

 awk 'BEGIN {found=false} /  end/ { d; found=true} else {print}'

 awk 'BEGIN {found=false} {/  end/ {found=true} else {print}}'

作为开始/猜测,但这显然是错误的。

答案1

只需使用一个变量来跟踪第一个匹配的:

awk -v first=1 'first && /  end/ {first=0;next};1' <file

相关内容