shell 截取字符串 %, %%,:
一,% 和 %% 方法
${parameter%word} 最小限度从后面截掉word
${parameter%%word} 最大限度从后面截掉word
${parameter#word} 最小限度从前面截掉word
${parameter##word} 最大限度从前面截掉word
例子
str='http://www.你的域名.com/cut-string.html' echo ${str%/*} 结果: http://www.你的域名.com echo ${str%%/*} 结果:http: echo ${str#*//} 结果: www.你的域名.com/cut-string.html echo ${str##*/} 结果:cut-string.html
二, : 方法
${variable:n1:n2}:截取变量variable从左边起索引n1开始的n2个字符。n1表示索引,索引从0开始;n2表示截取的字符个数。
变种如下:
${variable:n1}:截取变量variable从左边起索引n1开始的所有字符。
${variable:0-n1:n2}:截取变量variable从右边起第n1个字符开始的n2个字符。
${variable:0-n1}:截取变量variable从右边起第n1个字符开始的所有字符。
例子:
variable='http://www.你的域名.com/cut-string.html' echo ${variable:0:4} 结果:http echo ${variable:7} 结果: www.你的域名.com/cut-string.html echo ${variable:0-15:10} 结果:cut-string echo ${variable:0-15} 结果:cut-string.html
三 截取符号
[root@node01 ~]# file=/dir1/dir2/dir3/my.file.txt [root@node01 ~]# echo ${file#*/} dir1/dir2/dir3/my.file.txt
删掉第一个 / 及其左边的字符串
[root@node01 ~]# echo ${file##*/} my.file.txt
删掉最后一个 / 及其左边的字符串
[root@node01 ~]# echo ${file#*.} file.txt
删掉第一个 . 及其左边的字符串
[root@node01 ~]# echo ${file##*.} txt
删掉最后一个 . 及其左边的字符串
[root@node01 ~]# echo ${file%/*} /dir1/dir2/dir3
删掉最后一个 / 及其右边的字符串
[root@node01 ~]# echo ${file%%/*} 空值
删掉第一个 / 及其右边的字符串
[root@node01 ~]# echo ${file%.*} /dir1/dir2/dir3/my.file
删掉最后一个 . 及其右边的字符串
[root@node01 ~]# echo ${file%%.*} /dir1/dir2/dir3/my
删掉第一个 . 及其右边的字符串
共 0 条评论