shell 字符串处理

一. 字符串截取

1. 关键字(词)截取

  • # 号截取,删除左边字符,保留右边字符
var=http://www.aaa.com/123.htm
echo ${var#*//} # 从左边开始删除第一个 // 号及其左边的所有字符
# 输出为 www.aaa.com/123.htm
  • ## 号截取,删除左边字符,保留右边字符
var=http://www.aaa.com/123.htm
echo ${var##*/} # 从左边开始删除最后(最右边)一个 / 号及其左边的所有字符
# 输出123.htm
  • %号截取,删除右边字符,保留左边字符
var=http://www.aaa.com/123.htm
echo ${var%/*} # 从右边开始,删除第一个 / 号及其右边的字符
# 输出 http://www.aaa.com
  • %% 号截取,删除右边字符,保留左边字符
var=http://www.aaa.com/123.htm
echo ${var%%/*} # 从右边开始,删除最后一个(最左边) / 号及其右边的字符
# 输出 http:

2. 定位截取

  • 从左边第几个字符开始,及字符的个数
var=http://www.aaa.com/123.htm
echo ${var:0:5} # 0 表示左边第一个字符开始,5 表示字符的总个数
# 输出 http:
  • 从左边第几个字符开始,一直到结束
var=http://www.aaa.com/123.htm 
echo ${var:5} # 5 表示左边第6个字符开始,一直到结束。 
# 输出 //www.aaa.com/123.htm
  • 从右边第几个字符开始,及字符的个数
var=http://www.aaa.com/123.htm 
echo ${var:0-7:3} # 0-7 表示右边算起第七个字符开始,3 表示字符的个数
# 输出 123
  • 从右边第几个字符开始,一直到结束
var=http://www.aaa.com/123.htm
echo ${var:0-7} # 从右边第七个字符开始,一直到结束
# 输出 123.htm

二. 字符串拼接

  • 字符串与字符串的拼接
echo "111""222"
# 输出 111222
  • 字符串与变量拼接
var="aaa"
echo "111"${var}
# 输出 111aaa

echo "111${var}" 
# 输出 111aaa
  • 变量与变量拼接
a="123"
b="456"
echo $a$b
# 输出 123456

三. 参考