在sed转换中,如何仅对最后一行应用略有不同的模式?

问题描述

| 我该如何转:
aaa
bbb
ccc
到这个:
aaa,bbb,ccc
sed
? 请注意,除最后一行外,所有行如何以逗号结尾。 在我真正的问题中,我还在线上进行了一些正则表达式替换。有没有不重复它们的解决方案?     

解决方法

        您可以使用:
sed \'$q;s/$/,/\'
如果要在最后一行应用其他替换,仍可以使用
$
地址:
sed \'$s/$/;/;$q;s/$/,/\'
如果是最后一行,上面的代码将以
;
代替该行的末尾,否则将使用
,
$s/$/;/
=最后一行,用
;
替换行尾
$q
=最后一行,退出
s/$/,/
=用ѭ7替换行尾 每行将执行最后一个
s
命令,但不会在2处的
q
命令告诉其退出的最后一行运行。 看到: 限制为行号 行号范围 q或quit命令     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...