如果我有一个包含多行的文件
...
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