shell中常用的变量处理、字符串操作(之二)

  • A+
所属分类:Shell  编程

shell中常用的变量处理、字符串操作(之二) 
 

上一篇文章中,我们提到了shell中常用的字符串处理操作,我们来回顾一下

一、获取变量的长度(字符串长度)。

二、对变量值进行截取(截取字符串)。

三、替换变量值中的某段字符。

四、删除变量值中的某段字符。

五、对变量值进行大小写转换。

六、当变量值为空时,对变量进行一些操作。

 

上篇文章中,我们已经总结了怎样获取变量长度,以及怎样对变量值进行截取,这篇文章中我们就来总结一下,怎样删除变量值中的字符串,以及怎样替换变量值中的字符串。

 

替换变量中的字符串

假如,我们想要把字符串"www.zsythink.net"中的"www"替换成"linux",我们该怎么办呢?方法有很多种,不过此处,我们是来讨论操作变量的方法的,所以我们不考虑其他方法,我们来看一个替换变量中字符的示例,示例如下

shell中常用的变量处理、字符串操作(之二)

上例表示,将website变量中的www替换成linux,就是这么简单,但是需要注意,上例中的写法,只能替换字符串中第一个遇到的"www",如果字符串中包含多个"www",只有第一个"www"会被替换,其他"www"不会被替换,示例如下

shell中常用的变量处理、字符串操作(之二)

如果我们想要将字符串中的所有www都替换成linux,则可以使用如下语法,示例如下

shell中常用的变量处理、字符串操作(之二)

 

除了上述两种方法能够替换变量中的字符串,其实还有两种方法,不过这两种方法针对性比较强,一种是针对行首的字符串进行替换,另一种是针对行尾的字符串进行替换,示例如下

shell中常用的变量处理、字符串操作(之二)

没错,上图中的两个例子分别表示只替换行首的www,或者只替换行尾的www

 

删除变量中的字符串

只要理解了怎样替换变量中的字符串,再来理解怎样删除变量中的字符串,简直不要太简单,因为它们的语法几乎是一样。

假如,我们想要将字符串"www.zsythink.net"中的第一个"."替换成"@"    ,可以使用如下语法

shell中常用的变量处理、字符串操作(之二)

刚才说过,删除字符串的语法比替换字符串的语法更简单,如果我们想要删除上述字符串中的第一个"." 则可以使用如下方法

shell中常用的变量处理、字符串操作(之二)

语法的确更简单,其实就是将替换字符串语法中的替换部分省略了。

 

同理,在删除字符串也有多种方法。

比如,刚才的示例中,我们只删除了字符串中的第一个"."  ,如果我们想要删除字符串中的所有的"." ,则可以使用如下语法

shell中常用的变量处理、字符串操作(之二)

聪明如你一定发现了,其实,删除字符串的语法是与替换字符串的语法其实是"对应的"。

 

那么综上所述,你应该已经可以推理出另外两种删除字符串的方法了。

没错,删除行首的某个字符串或者删除行尾的某个字符串的方法如下

shell中常用的变量处理、字符串操作(之二)

 

好了,关于替换字符串与删除字符串的常用操作示例就先到这里,为了方便回顾,我们将上述常用操作进行一下小结,在小结中,有一些特殊情况的示例,不要错过哦~~

 

小结

删除字符串的操作

删除变量值中第一个遇到的指定字符串

语法:echo ${var/str}

 

删除变量值中所有的指定字符串

语法:echo ${var//str}

 

特殊情况

 

删除变量值中位于行首的指定字符串

语法:echo ${var/#str}

 

特殊情况

 

删除变量值中位于行尾的指定字符串

语法:echo ${var/%str}

 

特殊情况

 

替换字符串的操作

将变量值中第一个遇到的str1替换成str2

语法:echo ${var/str1/str2}

 

将变量值中所有的str1替换成str2

语法:echo ${var//str1/str2}

 

特殊情况

 

将变量值中位于行首的str1替换成str2

语法:echo ${var/#str1/str2}

 

特殊情况

 

将变量值中位于行尾的str1替换成str2

语法:echo ${var/%str1/str2}

 

特殊情况

这篇文章就总结到这里,希望能够对你有所帮助~~

  

weinxin
我的微信公众号
关注"实用运维笔记"微信公众号,当博客中有新文章时,可第一时间得知哦~
朱双印

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: