我正在使用 Bash shell 脚本构建一个包含 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