gpt4 book ai didi

bash - 如何在除最后一行之外的每一行末尾添加逗号?

转载 作者:行者123 更新时间:2023-11-29 08:44:27 29 4
gpt4 key购买 nike

我想在这种文件的每一行末尾添加一个逗号,除了最后一行:

我现在有这个:

{...}
{...}
{...}
{...}

我想要这个:

{...},
{...},
{...},
{...}

如何使用命令行执行此操作? sed 命令可以吗?

最佳答案

下面的 sed 脚本有一个地址表达式 $! 匹配不是最后的行,还有一个替换操作 s/$/,/ 在行尾添加一个逗号。

sed '$!s/$/,/' file

(地址中的$指的是最后,而替换正则表达式中的$指的是最后< em>每行的字符位置。它们不相关,但在某种意义上相似。)

这会将 file 的修改内容打印到标准输出;重定向到不同的文件以将它们保存到文件中,或者如果您的 sed 支持,则使用 sed -i 。 (一些变体需要 -i 选项的空参数,特别是 *BSD/OSX sed。)

如果您的任务是从某种无效的 JSON 生成有效的 JSON,我对这种方法持怀疑态度。结构化格式应该使用理解结构化格式的工具来操作,而不是基本的面向行的工具;但如果这有助于您将面向行的数据转换为正确的 JSON,那么这可能是一种有效的用法。

... 作为事后的想法,也许您还想将输出包装在一组方括号中。那么它实际上是技术上有效的 JSON(假设每一行本身都是一个有效的 JSON 片段)。

sed '1s/^/[/;$!s/$/,/;$s/$/]/' file

在第一行(地址表达式 1)替换行开头的左方括号 (s/^/[/)。在不是最后一行的行上,添加一个尾随逗号,如上所示。在的最后一行(地址表达式$)在行尾添加一个右方括号(s/$/]/ ).如果您更喜欢换行符而不是分号,那很好;许多 sed 方言还允许您将其拆分为多个 -e 参数。

关于bash - 如何在除最后一行之外的每一行末尾添加逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35021524/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com