中国源码网

用Shell判断字符串包含关系的方法小结

  • 时间:2018-11-25 19:49 编辑:转载 来源:网络 阅读:533
  • 扫一扫,手机访问
摘要:用Shell判断字符串包含关系的方法小结前言现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含“baidu”字符串以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverf

用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

  fi

这个也挺复杂

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【数码/游戏|手机游戏】战神引擎免GGTools验证,免PHPStudy 通用版本搭建教程(2019-11-10 19:08)
【数码/游戏|手机游戏】宝塔架设白日门图文教程(2019-10-26 16:23)
【数码/游戏|手机游戏】phpStudy运行时候提示PHP Startup:如何解决(2019-10-13 19:16)
【数码/游戏|手机游戏】雷霆传奇H5外网架设教程|雷霆传奇H5外网搭建图文教程(2019-10-13 18:34)
【数码/游戏|手机游戏】将雷霆传奇H5打包为app图文教程|H5游戏网址打包为安卓ios图文教程(2019-10-12 20:35)
【电脑网络|服务器应用】SQL2008附加数据库图文教程|SQL附加数据库视频教程(2019-10-07 11:57)
【电脑网络|服务器应用】SQL Server 18456的错误解决办法(2019-10-07 10:36)
【数码/游戏|手机游戏】复古传奇战神引擎包+战神引擎合区工具+战神引擎通用客户端+架设视频教程(2019-10-06 16:17)
【电脑网络|常用软件】apk签名工具(dodo APKSign) 绿色版(2019-10-02 22:32)
【数码/游戏|手机游戏】屠龙传奇H5一键端外网架设图文教程|Win版养昆传奇H5一键端图文安装教程(2019-09-28 15:03)

本站创立于2009年,已运行,感谢一路相伴