1. 字符串操作
1.1 语法
1.2 示例
1) 获取变量长度
VAR="hello world" echo ${#VAR} [root@o18c tmp]# VAR="hello world" [root@o18c tmp]# echo ${#VAR} 11
2) 通过索引下标截取子串
echo ${VAR:6} echo ${VAR:6:3} [root@o18c tmp]# echo ${VAR:6} world [root@o18c tmp]# echo ${VAR:6:3} wor [root@o18c tmp]#
3) 查找指定字符截取子串
VAR='https://www.mirrors163.com' # 从左边开始找到字符 '//' 并将左边所有字符和自身删除,即保留其右边所有字符 echo ${VAR#*//} echo ${VAR#*\.} # 从左边开始找到最右边一个的字符 '//' 并将左边所有字符和自身删除,即保留其右边所有字符字符 echo ${VAR##*\.} # 从右边开始找到字符 'www' 并将右边所有字符和自身删除,即保留其左边所有字符 echo ${VAR%www*} echo ${VAR%\.*} # 从右边开始找到最左边一个的字符 '.' 并将右边所有字符和自身删除,即保留其左边所有字符字符 echo ${VAR%%\.*} # 是去掉左边字符(在键盘上 # 在 $ 之左边) % 是去掉右边(在键盘上 % 在 $ 之右边) 单一符号是最小匹配﹔两个符号是最大匹配。 *是用来匹配不要的字符,也就是想要去掉的那部分 还有指定字符分隔号,与*配合,决定取哪部分 注意: 查找的字符串支持正则模式 [root@o18c tmp]# VAR='https://www.mirrors163.com' [root@o18c tmp]# echo ${VAR#*//} www.mirrors163.com [root@o18c tmp]# echo ${VAR##*\.} com [root@o18c tmp]# echo ${VAR#*\.} mirrors163.com [root@o18c tmp]# echo ${VAR%www*} https:// [root@o18c tmp]# echo ${VAR%%\.*} https://www [root@o18c tmp]# echo ${VAR%\.*} https://www.mirrors163 [root@o18c tmp]# echo ${VAR%%\.*} https://www [root@o18c tmp]#
4) 变量替换
# 使用 'baidu' 替换 字符中的 'mirrors163' echo ${VAR/mirrors163/baidu} echo ${VAR/m/M} # 使用 'M' 替换 字符中所有的字符 'm' echo ${VAR//m/M} [root@o18c tmp]# echo ${VAR/mirrors163/baidu} https://www.baidu.com [root@o18c tmp]# echo ${VAR/m/M} https://www.Mirrors163.com [root@o18c tmp]# echo ${VAR//m/M} https://www.Mirrors163.coM [root@o18c tmp]#
5) 匹配开头或结尾字符替换
str="apple, tree, apple tree" echo ${str/#apple/APPLE} echo ${str/%tree/TREE} # 查找字符串str中 "apple"开头的子串并替换成 'APPLE' [root@o18c tmp]# echo ${str/#apple/APPLE} APPLE, tree, apple tree [root@o18c tmp]# echo ${str/%apple/APPLE} apple, tree, apple tree # 查找字符串str中 "tree"结尾的子串并替换成 'TREE' [root@o18c tmp]# echo ${str/%tree/TREE} apple, tree, apple TREE [root@o18c tmp]#