1、使用 # 号操作符。用途是从左边开始删除第一次出现子字符串即其左边字符,保留右边字符。用法为#substr,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str#*//}

得到的结果为www.你的域名.com/cut-string.html,即删除从左边开始到第一个”//”及其左边所有字符
2、使用 ## 号操作符。用途是从左边开始删除最后一次出现子字符串即其左边字符,保留右边字符。用法为##
substr,例如:
str=’http://www.你的域名.com/cut-string.html’
echo ${str##/}
得到的结果为cut-string.html,即删除最后出现的”/”及其左边所有字符
3、使用 % 号操作符。用途是从右边开始删除第一次出现子字符串即其右边字符,保留左边字符。用法为%substr
,例如:
str=’http://www.你的域名.com/cut-string.html’
echo ${str%/}
得到的结果为http://www.你的域名.com,即删除从右边开始到第一个”/”及其右边所有字符
4、使用 %% 号操作符。用途是从右边开始删除最后一次出现子字符串即其右边字符,保留左边字符。用法为%%substr
,例如:
str=’http://www.你的域名.com/cut-string.html’
echo {str%%/*}
得到的结果为http://www.你的域名.com,即删除从右边开始到最后一个”/”及其右边所有字符

第二种也分为四种,分别介绍如下:
1、从左边第几个字符开始以及字符的个数,用法为:start:len,例如:
str=’http://www.你的域名.com/cut-string.html’
echo{var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
2、从左边第几个字符开始一直到结束,用法为:start,例如:
str=’http://www.你的域名.com/cut-string.html’
echo {var:7}
其中的 7 表示左边第8个字符开始
结果是:www.你的域名.com/cut-string.html
3、从右边第几个字符开始以及字符的个数,用法:0-start:len,例如:
str=’http://www.你的域名.com/cut-string.html’
echo
{str:0-15:10}
其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:cut-string
3、从右边第几个字符开始一直到结束,用法:0-start,例如:
str=’http://www.你的域名.com/cut-string.html’
echo ${str:0-4}
其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:html
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

1 对 “shell字符串截取”的想法;

  1. 字符串大小写转换:
    1、typeset
    有两个选项 -l 代表小写 -u 代表大写。
    用法:
    typeset -u name
    name=’asdasdas’
    echo name

    typeset -l ame
    ame=’asdasdas’
    echoame

    结果:
    [lzk@localhost 33_class_3_26_shell]$ bash test.sh
    ASDASDAS
    asdasdas

    2、利用表达式

    echo ‘hello’ | tr ‘a-z’ ‘A-Z’
    echo ‘HELLO’ | tr ‘A-Z’ ‘a-z’

    结果:

    HELLO
    hello

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code