ファイルの最後から最後のカンマ区切り文字を削除する方法は?

ファイルの最後から最後のカンマ区切り文字を削除する方法は?

Linuxのファイルから最後のカンマ区切り文字を削除する方法は?

ファイルの例:

"is_supported_kafka_ranger" : "true",
"kafka_log_dir" : "/var/log/kafka",
"kafka_pid_dir" : "/var/run/kafka",
"kafka_user" : "kafka",
"kafka_user_nofile_limit" : "128000",
"kafka_user_nproc_limit" : "65536",

予想される結果:

"is_supported_kafka_ranger" : "true",
"kafka_log_dir" : "/var/log/kafka",
"kafka_pid_dir" : "/var/run/kafka",
"kafka_user" : "kafka",
"kafka_user_nofile_limit" : "128000",
"kafka_user_nproc_limit" : "65536"

ベストアンサー1

GNUの使用sed:

sed -i '$s/,$//' file

つまり、最後の行($)からs行末()のカンマ()を,$何もないものに置き換えます。

フラグのため、変更は内部で行われます-i

標準sed:

sed '$s/,$//' <file >file.new &&
mv file.new file

注:誰かが「最後の行」を「最後の行」(または同様のもの)に変更する編集を提案しました。これは間違っています。$アドレス(編集コマンドが適用される行)を指定するために使用される場合は、ストリームまたはファイルの最後の行を表します。これはその他$正規表現に使用されます。

おすすめ記事