sed+ は、単語が一致する行を削除し、コメントが行の先頭に表示される場合にのみ該当します。

sed+ は、単語が一致する行を削除し、コメントが行の先頭に表示される場合にのみ該当します。

単語に一致する行を削除するのは簡単です

たとえば、単語に一致する行を削除したい場合 -max.connections

sed '/max.connections/d' /home/conf.txt

しかし、次の一致行とコメントで始まる行だけを削除するにはどうすればよいですか?

more  /home/conf.txt
#max.connections=438473
#   max.connections=438473
    # max.connections=438473
# max.connections=438473
max.connections=438473

注 - コメントは最初に来ることも、スペースを含めることもできます。

予想出力の例

more  /home/conf.txt
max.connections=438473

答え1

あなたのニーズに正確に合う正規表現を作成するのが技術です。この例では、aで始まり#、いくつかの文字が含まれてから、行が一致するようにしますmax.connection。正規表現では次のようになります。

^                beginning of the line
#                The character '#'
.*               any character, may be repeated 0-infinity times
max.connections  This litteral text

またはsedコマンドとして:

sed '/^#.*max.connections/d' /home/conf.txt

関連情報