• Bash:字符串操作


    参考:http://blog.csdn.net/finewings/article/details/5718133

    字符串提取

    去掉指定前缀

    1. ${varible#pattern}               从头开始,左往右,删除最短的一个pattern结尾的字符串,即截取第一个pattern结尾子串之后的字符串

    例如在集群中服务器的主机名一般都是node000,node001,node002之类的有时我们只想提取这个数字编码ID就可以像如下这样:

    ubuntu@dev00:~$ hn=$(hostname)
    
    ubuntu@dev00:~$ echo ${hn#dev}
    00

    当前机器名为dev00,当然还可以加入使用通配符,比如*

    $ x="abcdefg"
    $ echo ${x#*'cd'}
    efg

    连前面的ab都去掉了

    2. ${varible##pattern}               从头开始,左往右,删除最长的一个以pattern结尾的子串,即截取最后一个以pattern结尾子串之后的字符串(类似正则里面的贪婪)

    例子:将x=“009”~“019”这些字符提取为没有前导零的形式,由于x中可能有不定个零,可以以最后一个0为截断位置

    ubuntu@dev00:~$ x='009'
    ubuntu@dev00:~$ echo ${x##*0}
    9

    去除指定后缀

    这个和‘去除指定前缀’几乎一样,就是方向变了一下,相应的表示的符号也换了一下:

    1. ${variable%pattern}

    2. ${variable%%pattern}

    固定位置

    ${varible:start:len}              :截取变量varible从位置start开始长度为len的子串。第一个字符的位置为0。

    这个和一般语言里的substr(index, len)一致,(hn=‘dev00’)

    ubuntu@dev00:~$ echo ${hn:3:2}
  • 相关阅读:
    对于Dubbo一些面试题自己的答案
    序列化和反序列化的简单理解
    学习Spring-Session+Redis实现session共享
    Java中的String,StringBuilder,StringBuffer三者的区别
    个人对数据结构的理解和总结
    LeetCode 101. Symmetric Tree
    LeetCode 100. Same Tree
    LeetCode 88. Merge Sorted Array
    LeetCode 83. Remove Duplicates from Sorted List
    LeetCode 70. Climbing Stairs
  • 原文地址:https://www.cnblogs.com/lailailai/p/4565621.html
Copyright © 2020-2023  润新知