加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 19:00:04 所属栏目:安全 来源:网络整理
导读:我想在除最后一行之外的这种文件的每一行末尾添加一个逗号: 我现在有这个: {...}{...}{...}{...} 我要这个: {...},{...},{...} 如何使用命令行执行此操作?用sed命令可以吗? 以下sed脚本的地址表达式为$!它匹配不是最后一行的行,以及一个替换动作s / $/
我想在除最后一行之外的这种文件的每一行末尾添加一个逗号:

我现在有这个:

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

我要这个:

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

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

以下sed脚本的地址表达式为$!它匹配不是最后一行的行,以及一个替换动作s / $/,/它在行尾添加一个逗号.
sed '$!s/$/,/' file

(地址中的$表示最后一行,而替换中正则表达式中的$表示每行上的最后一个字符位置.它们是不相关的,尽管在某种意义上类似.)

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

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

…作为事后的想法,也许你想把输出包装在一组方括号中.然后它实际上是技术上有效的JSON(假设每一行都是一个有效的JSON片段).

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

在第一行(地址表达式1)替换在行开头(s / ^ / [/)的开头方括号中.在不是最后一行的行上,添加一个尾随逗号,如上所述.在最后一行(地址表达式$)的行末尾添加一个结束方括号(s / $/] /).如果您更喜欢分号换行,那就没问题;许多sed方言也允许你将它分成多个-e参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读