文章目录
前言
本文主要介绍下Shell脚本中有关字符串的一些操作。
一、字符串查找
假设字符串strA=“absef”, strB=“bse”,判断strA中是否包含strB?
有以下两种方法:
1. grep查找法
result=$(echo $strA | grep "${strB}")
if [[ "$result" != "" ]]
then
echo "包含"
else
echo "不包含"
fi
2. 字符串运算符
if [[ $strA =~ $strB ]]
then
echo "包含"
else
echo "不包含"
fi
二、字符串截取
假设string = http://baidu.com/563.htm
1. #号截取(自左向右)
echo ${string#*//} //输出结果:baidu.com/563.htm
说明:string是字符串,#是运算符, *// 表示从左边开始,删除第一个“//” 号及其左边的所有字符。
2. ##号截取(自左向右)
echo ${string##*/} //输出结果:563.htm
说明:##*/ 表示从左边开始,删除最后一个(最右边)“/”号及其左边的所有字符
3. %号截取(自右向左)
echo ${string%/*} //输出结果:http://baidu.com
说明:%/* 表示从右边开始,删除第一个“/”号及其右边的所有字符
4. %%号截取(自右向左)
echo ${string%%/*} //输出结果:http://baidu.com
说明:%%/* 表示从右边开始,删除最后一个(最左边)“/”号及其右边的所有字符
5. 从左边第几个字符开始截取
echo ${string:0:5} //0表示从左边第1个字符开始,5表示字符的总个数。输出结果:http:
echo ${string:5} //5表示从左边第6个字符开始,一直到结束。输出结果:/baidu.com/563.htm
6. %%号截取(自右向左)
echo ${string:0-7:3} //0-7表示从右边开始计算第7个字符开始,3表示获取的字符个数。输出结果:563
echo ${string:0-7} //0-7表示从右边开始计算第7个字符开始,一直到结束。输出结果:563.htm
三、字符串终端打印
1.直接打印内容
echo "Hello world"
echo 'Hello world'
echo Hello world //三者结果相同,在终端均打印出: Hello world
2. 打印string
string="asdf"
echo "123$string"
echo 123$string // 两者结果相同,在终端均打印出: 123asdf