没有合适的资源?快使用搜索试试~ 我知道了~
首页用Shell判断字符串包含关系的方法小结
前言 现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含“baidu”字符串 以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault。 方法一:利用grep查找 strA=long string strB=string result=$(echo $strA | grep ${strB}) if [[ $result != ]] then echo 包含 else echo 不包含 fi 先打印长字符串,然后在长字符串中 grep 查
资源详情
资源评论
资源推荐

用用Shell判断字符串包含关系的方法小结判断字符串包含关系的方法小结
前言前言
现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含“baidu”字符串
以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault。
方法一:利用方法一:利用grep查找查找
strA="long string"
strB="string"
result=$(echo $strA | grep "${strB}")
if [[ "$result" != "" ]] then
echo "包含"
else
echo "不包含"
fi
先打印长字符串,然后在长字符串中 grep 查找要搜索的字符串,用变量result记录结果
如果结果不为空,说明strA包含strB。如果结果为空,说明不包含。
这个方法充分利用了grep 的特性,最为简洁。
方法二:利用字符串运算符方法二:利用字符串运算符
strA="helloworld"
strB="low"
if [[ $strA =~ $strB ]] then
echo "包含"
else
echo "不包含"
fi
利用字符串运算符 =~ 直接判断strA是否包含strB。(这不是比第一个方法还要简洁吗!)
方法三:利用通配符方法三:利用通配符
A="helloworld"
B="low"
if [[ $A == *$B* ]] then
echo "包含"
else
echo "不包含"
fi
这个也很easy,用通配符*号代理strA中非strB的部分,如果结果相等说明包含,反之不包含。
方法四:利用方法四:利用case in 语句语句
thisString="1 2 3 4 5" # 源字符串
searchString="1 2" # 搜索字符串
case $thisString in
*"$searchString"*) echo Enemy Spot ;;
*) echo nope ;;
esa
这个就比较复杂了,case in 我还没有接触到,不过既然有比较简单的方法何必如此
方法五:利用替换方法五:利用替换
STRING_A=$1
STRING_B=$2
if [[ ${STRING_A/${STRING_B}//} == $STRING_A ]] then
## is not substring.
echo N
return 0
else
## is substring.
echo Y
return 1




















weixin_38684328
- 粉丝: 5
- 资源: 898
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0