次の形式の異なる値を持つ設定ファイルがあります。
[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