首页 > 解决方案 > 替换除最后一个块之外的所有块

问题描述

我有这个文件:

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 来做,但我用所有 . 由-,我想离开最后一个。无需更换。谢谢

标签: bashsed

解决方案


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#/最后替换-.

推荐阅读