ファイルの最後のテキスト行を削除する方法は?

ファイルの最後のテキスト行を削除する方法は?

私はBashシェルスクリプトを使用してJavascript配列を含むテキストファイルを作成しています。 Javascriptの私の理解によると、配列の最後の項目にはカンマを含めることはできません。私のJavaScriptではエラーが発生します。

別のコードを使用して生成されたアイテムのリストがあり、結果は次のとおりです。

text0161: "blah",
text0162: "blah blah",
text0163: "blah blah blah",

最後の行text0163: "blah blah blah",に続くコンマを削除してくださいtext0163: "blah blah blah"

処理中の現在の時点には何もないので、text0163: "blah blah blah"ファイルの最後の行を見つけてコンマを削除できます。ただし、行の内容が変更される可能性があるため、必ずしも正確ではありませんtext0163: "blah blah blah",。のような他のものに変わることがありますtext2020: "doobie doobie doo",

私はsedを使用して次のようにコンマを削除できることを知っています。

sed -i 's@,@@g' file.txt

しかし、どうすればいいのかわかりません。ただ最後の行でこれを行います。

答え1

特定のコマンド/正規表現のアドレスを指定できます。最後の行は で表示されるので、$あなたの場合は次のようになります。

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

正規表現でより一般的に使用されるので、your@に置き換えました。/

この正規表現は行末のコンマだけを削除します。つまり、カンマの後にスペースがある場合、またはカンマが引用符付きのテキスト内にある場合は削除されません。

答え2

sedでは、最後の行を一致させることができ、現在の行を削除する$コマンドがあります。d

sed -i '$d' file.txt

関連情報