Shell中怎么判断字符串包含关系-创新互联

Shell中怎么判断字符串包含关系,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联建站主营娄烦网站建设的网络公司,主营网站建设方案,app开发定制,娄烦h5微信小程序开发搭建,娄烦网站营销推广欢迎娄烦等地区企业咨询

方法一:利用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
  fi

看完上述内容,你们掌握Shell中怎么判断字符串包含关系的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享文章:Shell中怎么判断字符串包含关系-创新互联
网页网址:http://ybzwz.com/article/hdogo.html