shell字符串截取
目录
使用 # 号截取右边字符
格式为:
${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
,然后再往后偏移一个字符,再从这里开始截取三个字符。
历史评论
开始评论