shell的字符串截取
str="https://76.38.71.244,port:8080"
格式:echo "${str"符号"}"
符号 | 说明 | 备注 |
#*// | 删除左边,保留右边。以"//"为界,从左边开始,第一个"//"的左边所有字符进行删除 | 注意:"*"必须在“定界符”的左边,否则无效。 “//” 只是一个标记,可以更换 |
##*// | 删除左边,保留右边。以“//”为界,从右边开始,第一个"//"的左边所有字符进行删除 | |
%//* | 删除右边,保留左边。以"//"为界,从左边开始,第一个"//"的右边所有字符进行删除 | 注意:"*"必须在“定界符”的右边,否则无效 “//” 只是一个标记,可以更换 |
%%//* | 删除右边,保留左边。以"//"为界,从右边开始,第一个"//"的右边所有字符进行删除 | |
n:m | n:表示从第几位开始 m:表示往后保留几位 | 注意:索引从0开始,-1便是右边的第1位,以此类推 |
echo "${q//a/}" #删除变量q中的a字符。
#下面的注释和上面的说明,其实意思是一样的,捡一个自己好理解的记住就行
#/bin/bash
str="https://76.38.71.244,port:8080"
echo "0: $str"
echo ----------------------------------
echo ""#" 删除左边,保留右边"
echo "1: ${str#*.}" #从左边开始,遇见第一个"."结束,进行删除
echo "2: ${str##*.}" #从左边开始,遇见最后一个"."结束,进行删除
echo ----------------------------------
echo ""%" 删除右边,保留左边"
echo "3: ${str%.*}" #从右边开始,遇见第一个"."结束,进行删除
echo "4: ${str%%.*}" #从右边开始,遇见最后一个"."结束,进行删除
echo ----------------------------------
echo "指定索引位截取"
echo "5: ${str:3:4}" #第三位开始,往后4位,进行截取操作
echo "6: ${str:10}" #从第10位开始,一直到最后,进行截取操作
echo "7: ${str:0-9:5}" #从右边数,第9位开始,往后5位进行截取操作
echo "8: ${str:0-9}" #从右边数,第9位开始,一直到最后,进行截取
结果图如下: