如何删除文件最后一行的文本?

Que*_*ner 4 bash

我正在使用 Bash shell 脚本来构造一个包含 Javascript 数组的文本文件。据我了解 Javascript,数组中的最后一项不能有逗号。在我的 Javascript 中,这给了我错误。

我有一个用其他代码生成的项目列表,结果如下所示:

text0161: "blah",
text0162: "blah blah",
text0163: "blah blah blah",
Run Code Online (Sandbox Code Playgroud)

我需要取最后一行,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
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在最后一行做到这一点。

Ulr*_*gel 6

您可以指定特定命令/正则表达式的地址。最后一行由 表示$,因此在您的情况下,它将是:

sed -i '$ s/,$//' file.txt
Run Code Online (Sandbox Code Playgroud)

请注意,我替换了你的@/因为它们在正则表达式中更常用。

此正则表达式也仅删除行尾的逗号,例如,如果逗号后有空格或逗号在引用的文本中,则不会删除。