次のようにファイルからコメントを削除する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外国語文字を含むすべての空白文字が含まれます。しかし、これは移植性が低下します。