我有一个正则表达式,它使用这个正则表达式代码删除 bash 中的注释
'/^\#/d'
但它也删除了 #! 这不应该是因为它不是评论标签而是 shebang
那么如何忽略#!在正则表达式?
此行将删除所有以 # 开头但后面不跟 ! 的注释。
'/^#[^!]/d'
This makes the !
optional
'/^#[^!]*/d'
Try this:
awk '/^$/ || (NR == 1 && /^#!/) || /^[^#]/'
This matches lines that:
Matched lines are printed out.
这对我有用:
/^(#[^!]|#$)/d
|#$
匹配单个哈希行特殊情况的加法在哪里。例如:
cat commented.sh | sed '/^\(#[^!]\|#$\)/d'
^\#[^!]
不太正确,因为它要求!
之后的任何非字符#
,所以它不会删除后面#
没有任何内容的行。我不知道您使用的是什么风格的正则表达式,因此语法可能会有所不同,但您正在寻找负前瞻:^#(?!!)
。此外,#
角色根本不需要转义\
。