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

我怎么能把这个:在sed转换中,如何仅针对最后一行应用稍微不同的模式?

aaa 

bbb

ccc

变成这个:

aaa, 

bbb,

ccc

使用sed

注意所有行都以逗号结尾,除了最后一行。

在我的实际问题中,我也在线上做了一些正则表达式替换。有没有不重复的解决方案?

回答:

你可以使用:

sed '$q;s/$/,/' 

如果你想在最后一行应用不同的替代,你仍然可以使用$地址:

sed '$s/$/;/;$q;s/$/,/' 

以上将取代结束如果是最后一行,则使用;,否则将使用,

  1. $s/$/;/ =在最后一行,更换线与;
  2. $q =在最后一行结束,退出
  3. s/$/,/ =与替换行的末尾,

最后一个s命令将针对每一行运行,但不是最后一行,其中命令2的q指示它退出。


参见:

  • Restricting to a line number
  • Ranges by line number
  • The q or quit command

以上是 在sed转换中,如何仅针对最后一行应用稍微不同的模式? 的全部内容, 来源链接: utcz.com/qa/261123.html

回到顶部