替换除最后一块以外的所有块

时间:2019-09-01 08:18:46

标签: bash sed

我有这个文件:

blog.miau.com
api.blog.miau.com
api.nano.miau.uk
willifox.dev.puton.com

我想要这个输出:

blog-miau.com
api-blog-miau.com
api-nan-.miau.uk
willifox-dev-puton.com

我如何实现它,我用sed做到了,但是我用all代替了。 by-,我想离开最后一个。无需更换。谢谢

1 个答案:

答案 0 :(得分:1)

应该执行的sed

sed 's/\./-/g;s/\(.*\)-/\1\./' file
blog-miau.com
api-blog-miau.com
api-nano-miau.uk
willifox-dev-puton.com
  • s/#/\./.替换所有-
  • s/\(.*\)-/\1#/-替换最后一个.