在sed转换中,如何仅针对最后一行应用稍微不同的模式?
我怎么能把这个:在sed转换中,如何仅针对最后一行应用稍微不同的模式?
aaa bbb
ccc
变成这个:
aaa, bbb,
ccc
使用sed
?
注意所有行都以逗号结尾,除了最后一行。
在我的实际问题中,我也在线上做了一些正则表达式替换。有没有不重复的解决方案?
回答:
你可以使用:
sed '$q;s/$/,/'
如果你想在最后一行应用不同的替代,你仍然可以使用$
地址:
sed '$s/$/;/;$q;s/$/,/'
以上将取代结束如果是最后一行,则使用;
,否则将使用,
。
$s/$/;/
=在最后一行,更换线与;
$q
=在最后一行结束,退出s/$/,/
=与替换行的末尾,
最后一个s
命令将针对每一行运行,但不是最后一行,其中命令2的q
指示它退出。
参见:
- Restricting to a line number
- Ranges by line number
- The q or quit command
以上是 在sed转换中,如何仅针对最后一行应用稍微不同的模式? 的全部内容, 来源链接: utcz.com/qa/261123.html