1.删除左边字符,保留右边字符

1).使用#截取

例:str="http://www.baidu.com"

shell脚本中截取字符串_C/C++


其中*//表示从最左边开始删除第一个//分隔符之前的所有字符,#是运算符

2).双#号截取

shell脚本中截取字符串_C/C++_02

##*/表示从最左边开始删除最后一个/分隔符以及其前边的所有字符


2.删除右边字符,保留左边字符

1).使用%截取

shell脚本中截取字符串_字符串_03

%*/表示从最右边开始,删除第一个/分隔符及其右边的所有字符

2).双%号截取

shell脚本中截取字符串_C/C++_04

%%/*表示从最右边开始删除最后一个/分隔符及其右边所有字符


3.从左边开始,删除多少个字符

最左边的第一个字符用0表示,右边的第一个字符用0-1表示

1).删除中间几个字符

shell脚本中截取字符串_C/C++_05

中间的冒号表示截取从左边第几个字符开始到第几个字符结束

2).从左边的第几个字符开始,直到结束

shell脚本中截取字符串_字符串_06

表示从左边的第7个字符开始截取直到末尾的所有字符


4.从右边开始,截取多少个字符

1).从右边起第几个字符开始,截取多少个字符长度

shell脚本中截取字符串_C/C++_07

从右边第12个字符开始,截取7个字符长度内容

2).从右边第几个字符开始,直到截取结束

shell脚本中截取字符串_C/C++_08

表示从右边起第12个字符开始,截取后边所有字符


5.将某个字符串的内容截取指定子字符串

shell脚本中截取字符串_C/C++_09

第一个指令表示从字符串str的左边开始搜索匹配字符串str1,如果没有匹配到或者不完整匹配,则显示原字符串,否则显示截取后字符串,若从右边开始使用${str%%$str1}