linux 字符串string操作(截取、提取、长度计算等)
1、按照指定字符提取${varible##*string} 从左向右截取最后一个string后的字符串${varible#*string}从左向右截取第一个string后的字符串${varible%%string*}从右向左截取最后一个string后的字符串${varible%string*}从右向左截取第一个string后的字符串ex:str="abcdefghd123"ech...
1、按照指定字符提取
${varible##*string} 从左向右截取最后一个string后的字符串
${varible#*string}从左向右截取第一个string后的字符串
${varible%%string*}从右向左截取最后一个string后的字符串
${varible%string*}从右向左截取第一个string后的字符串
ex:
str="abcdefghd123"
echo ${str##*d}
123
echo ${str#*d}
efghd123
echo ${str%%d*}
abc
echo ${str%d*}
abcdefgh
延申:
1) 做字符串删除
${变量名#substring正则表达式}从字符串开头开始配备substring,删除匹配上的表达式。
${变量名%substring正则表达式}从字符串结尾开始配备substring,删除匹配上的表达式。
注意:${str##*/}, ${str%/*} 分别是得到文件名,或者目录地址最简单方法。
str="/home/domi/study"
echo ${str}
/home/domi/study
echo ${str#/}
home/domi/study
echo ${str#*/}
home/domi/study
echo ${str##*/}
study
2) 字符串替换
${变量/查找/替换值} 一个“/”表示替换第一个,”//”表示替换所有,当查找中出现了”/”请加转义符”\/”表示。
echo ${str/\//\\}
\home/domi/study
echo ${str//\//\\}
\home\domi\study
2、提取指定位置、长度的字符串
${varible:n1:n2}:截取变量varible从n1开始,长度为n2的字符串。
echo ${str:2:2}
cd
echo ${str:2:1}
c
echo ${str:0:1}
a
echo ${str:0:2}
ab
${varible:n1-n3:n2}:截取变量varible从后到前计算(n1-n3)位置开始,长度为n2的字符串。
echo ${str:1-2:2}
3
echo ${str:1-3:2}
23
echo ${str:1-3:1}
2
3、提取指定格式的字符串
比如获取后缀名
ls -l | cut -d “.” -f2
注释:ls -l显示所有的文件信息,cut按照(.)来切割,并提取第二列数据。
4、字符串长度
echo ${#str}
更多推荐
所有评论(0)