0

この正規表現コードを使用して、bash のコメントを削除する正規表現を取得しました

'/^\#/d'

#! も削除します。これはコメントタグではなくシバンであるため、そうすべきではありません

では、#! を無視するにはどうすればよいでしょうか。正規表現で?

4

5 に答える 5

2

この行は、# で始まるすべてのコメントを削除しますが、その後に ! はありません。

'/^#[^!]/d'
于 2013-05-03T07:36:04.083 に答える
1

これにより!

'/^#[^!]*/d'
于 2013-05-03T07:37:01.367 に答える
0

これは私のために働く:

/^(#[^!]|#$)/d

where|#$は、単一のハッシュ ラインの特殊なケースに一致する追加です。例えば:

cat commented.sh | sed '/^\(#[^!]\|#$\)/d' 
于 2013-05-03T11:39:14.573 に答える
0

これを試して:

awk '/^$/ || (NR == 1 && /^#!/) || /^[^#]/'

これは、次の行に一致します。

  • 空である、または
  • 最初の行であり、ハッシュバンで始まる、または
  • ハッシュではない文字で開始します。

一致した行が印刷されます。

于 2013-05-03T07:37:21.230 に答える
0

^\#[^!]!の後に非文字を要求するため、まったく正しくありません。そのため、その後に何もない#行は削除されませ#ん。使用している正規表現のフレーバーがわからないため、構文が異なる場合がありますが、否定的な前方参照:を探しています^#(?!!)。また、#文字をエスケープする必要はまったくありません\

于 2013-05-03T09:17:53.163 に答える