加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux Shell脚本问题

发布时间:2020-12-13 19:27:28 所属栏目:Linux 来源:网络整理
导读:我在Linux Shell中有一个用点分隔的字符串, $example=This.is.My.String 我想要 1.在最后一个点之前添加一些字符串,例如,我想在最后一个点之前添加“Good.Long”,所以我得到: This.is.My.Goood.Long.String 2.获取最后一个点后面的部分,这样我就可以了 Stri

我在Linux Shell中有一个用点分隔的字符串,

$example=This.is.My.String

我想要

1.在最后一个点之前添加一些字符串,例如,我想在最后一个点之前添加“Good.Long”,所以我得到:

This.is.My.Goood.Long.String

2.获取最后一个点后面的部分,这样我就可以了

String

3.将点转换为下划线除了最后一个点,所以我会得到

This_is_My.String

如果你有时间,请解释一下,我还在学习正则表达式.

非常感谢!

最佳答案
我不知道’Linux Shell’是什么意思所以我会假设bash.此解决方案也适用于zsh,等等:

example=This.is.My.String
before_last_dot=${example%.*}
after_last_dot=${example##*.}
echo ${before_last_dot}.Goood.Long.${after_last_dot} 
This.is.My.Goood.Long.String

echo ${before_last_dot//./_}.${after_last_dot} 
This_is_My.String

临时变量before_last_dot和after_last_dot应该解释我对%和##运算符的使用. //,我也认为是不言自明的,但我很乐意澄清你是否有任何问题.

这不使用sed(甚至是正则表达式),而是使用bash的内置参数替换.我更喜欢每个脚本只使用一种语言,尽可能少的叉子:-)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读