美文网首页Linux小推车
3.shell中的字符串操作

3.shell中的字符串操作

作者: 芝麻酱的简书 | 来源:发表于2018-07-12 16:58 被阅读1次

    shell中字符串使用单、双引号均可:

    name='andy'
    id="haha"
    echo $name
    echo $id
    
    1.字符串拼接:

    ⚠️方式一:

    #!/bin/bash
    name='andy'
    id="haha"
    #可以缩写为total="$name$id"
    total="${name}${id}"
    echo $total
    

    ⚠️方式二:

    #!/bin/bash
    name='andy'
    id="haha"
    total=" 姓名:$name 身份证: $id"
    echo $total
    

    2.获取字符串长度:

    语法:${#变量名}
    例如:

    #!/bin/bash
    name='andy'
    echo ${#name}
    #输出结果是4
    

    3.字符串提取子串:

    一:语法${string:position}
    $string中,从$position位置之后开始提取子串:

    name="abcABC123ABCabcde"
    subname=${name:3}
    echo ${subname}
    #输出结果ABC123ABCabcde
    

    二:语法${string:position:length}
    $string中,从$position位置之后开始提取$length长度的子串

    ${NAME:3:6}
    

    4.字符串删除:

    ⚠️从左到右删除
    方式一:
    ${string#substring正则表达式}
    从变量$string开头开始删除最短匹配$substring子串

    name="abcABC123ABCabcde"
    subname=${name#a*c}
    echo ${subname}
    

    方式二:
    ${string##substring正则表达式}
    从变量$string开头开始删除最长匹配$sunstring子串

    name="abcABC123ABCabcde"
    subname=${name##a*c}
    echo ${subname}
    

    ⚠️从右到左删除
    ${string%substring}
    从变量$string结尾开始删除最短匹配$substring子串

    ${string%%substring}
    从变量$string结尾开始删除最长匹配$substring子串

    注意:

    在进行#或##匹配时,string的首字符必须是被删除子串substring的第一个字符,不然无法匹配删除;
    在进行%或者%%匹配时,string的最后一个字符必须是被删除子串substring的最后一个字符,不然无法进行删除操作;


    5.字符串替换

    ${parameter/parttern/string}
    string来替换第一个匹配的pattern

    ${parameter/#parttern/string}
    从开头匹配parameter变量中的pattern,匹配上后就用string来替换匹配的pattern

    ${parameter/%pattern/string}
    从结尾开始匹配parameter变量中的pattern,匹配上后就用string替换匹配的pattern

    ${parameter//pattern/string}
    string来替换parameter变量中所有匹配的pattern

    相关文章

      网友评论

        本文标题:3.shell中的字符串操作

        本文链接:https://www.haomeiwen.com/subject/kkfrpftx.html