Awk-如何删除带括号的模式

Awk-How remove pattern with brackets

我犯了一个错误,添加了 Ini 文件(是的,我们在 2022 年 :D)有错误的部分

我加了一行[完[edit=true]

如何使用 awk 删除整行(我没有其他选择)

我不明白如何在 AWK 命令行中转义 [。

你能帮帮我吗?

谢谢

逃避前导(左)括号的几个想法:

awk '/\[End\[edit=true]/ {next} 1' file

# or

awk '!/\[End\[edit=true]/' file

确认结果后,假设您使用的是 GNU awk,您可以添加 -i inplace 来更新文件:

awk -i inplace '!/\[End\[edit=true]/' file

I don't understand how escape the [ in the AWK command line.

如果行始终是文字 [End[edit=true] 那么您不需要,只需请求不是以下方式的行,让 file.ini 内容成为

[someline=true]
[End[edit=true]
[another=true]

然后

awk '[=11=]!="[End[edit=true]"' file.ini

给出输出

[someline=true]
[another=true]

说明:[=15=]表示整行,如果不是[End[edit=true]则为printed.

(在 GNU Awk 5.0.1 中测试)