Linuxは、iniファイルからキー値のない行を削除します。

Linuxは、iniファイルからキー値のない行を削除します。

次の形式の異なる値を持つ設定ファイルがあります。

[Global]

control_ip =
control_port =
control_socket = /run/tipper.sock
control_pass =

これで、セクションヘッダーを=削除せずに、後に値がない行のみを削除したいと思います。[Global]

答え1

sed '/=\s*$/d' infile

または

sed '/=[[:blank:]]*$/d' infile

=ゼロ個以上のスペースで終わる行を削除します。


awk空の行を使用して維持します。

awk -F'[=\t ]' '$NF!="" || /^$/' infile

または

awk -F'=[[:blank:]]*' '$NF!="" || /^$/' infile

関連情報