要么改变世界,要么适应世界

shell字符串截取

2020-04-19 14:49:00
314
目录

使用 # 号截取右边字符

格式为:

${url#*childStr}

childStr可以是字符串或者是特定字符,将返回匹配第一个childStr后的字符串

file_name="test.txt"
echo ${file_name#*.}

将输出txt

如果希望匹配最后一个childStr后的字符串,可以使用##

file_name="test.tar.gz"
echo ${file_name##*.}

将返回gz

使用 % 号截取左边字符

格式为:

${url%childStr*}

例如:

#!/bin/bash
file_name="test.tar.gz"
echo ${file_name%.*}
echo ${file_name%%.*}

将输出

test.tar
test

截取指定个数字符串

  • 从字符串左边

    语法:

    c
    

    例如:

    str="abcdefghijkl"
    echo ${str:2:100}
    

    输出cdefg,即输出从startIndex开始长度是length的字符串,当length超出最后一个元素的界限或者是缺省时将输出从startIndex直至末尾。

  • 从字符串右边

    通常的语法:

    ${string: 0-startIndex :length}
    
    
    

    例如

    str="abcdefghijkl"
    echo ${str:0-7:3}
    
    
    

    将输出fgh,因为从右边往左边数,c,当然也可以这样:

    str="abcdefghijkl"
    echo ${str:1-7:3}
    
    
    

    此时的输出就变成了:ghi,可以这样理解:第七个字符是f,然后再往后偏移一个字符,再从这里开始截取三个字符。

历史评论
开始评论