sed、ファイル[重複]のすべてのコメントを削除する

sed、ファイル[重複]のすべてのコメントを削除する

次のようにファイルからコメントを削除するsedコマンドがあります。

sed -i /^#/d /path/to/file

これは機能しますが、コメントが空白にインデント/前にある場合は機能しません。

良い

#this is a good comment           ---- works
    #this is an indented comment  ---- doesn't work

最初に見える文字で#を含む行を削除するにはどうすればよいですか?

ベストアンサー1

先行スペースを許可するように正規表現を変更してください。

sed -e '/^[ \t]*#/d'

この正規表現は、ゼロ個以上の空白またはタブ(順序は関係ありません)で始まり、その後にポンド記号が続く行と一致します。

GNU sedはシンボル名もサポートしています:

sed -e '/^[[:space:]]*/d'

これには、興味深いUnicode外国語文字を含むすべての空白文字が含まれます。しかし、これは移植性が低下します。

おすすめ記事