bash - 替换除最后一个块之外的所有块
问题描述
我有这个文件:
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 来做,但我用所有 . 由-,我想离开最后一个。无需更换。谢谢
解决方案
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#/
最后替换-
为.
推荐阅读
- c# - Visual Studio 2019 调试后自动删除 nuget 包
- github - Webhook - 无效的 HTTP 响应:404
- java - Windows 无法启动服务,错误 1053:服务未及时响应启动或控制请求
- ssh - 执行 SELinux 后无法 SSH?
- bash - 遍历目录树并打印名称不佳的文件
- python - 如果用户通过他/她的电子邮件访问我的烧瓶网站;我怎样才能得到他/她的电子邮件地址?
- vba - MS Access ACCDE 无法编译,语法错误
- django - 未找到带有参数“(1,)”的“profile_update”的反向操作。问题
- migration - 尝试选择客户以在 customersupportbackoffice 中启动 asm 会话时出现异常
- python - 尝试根据其他列的非空白条目为新列分配值