中国源码网

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

  • 时间:2018-11-25 19:49 编辑:转载 来源:网络 阅读:103
  • 扫一扫,手机访问
摘要:用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)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【电脑网络|常用软件】HEdit Version 3.2.0.1 绿色汉化版(十六进制编辑器)(2019-03-24 09:37)
【电脑网络|服务器应用】win7下java环境搭建以及jdk环境变量配置(2019-03-24 09:23)
【数码/游戏|手机游戏】有侠气一键服务端外网架设图文教程(2019-03-23 19:42)
【电脑网络|常用软件】Reflector视频教程(2019-03-23 09:51)
【电脑网络|常用软件】如何安装及破解 Unity 3d 4.3.1f 的方法(2019-02-24 16:00)
【电脑网络|常用软件】apk改之理安装教程,apk改之理下载使用教程(2019-02-24 09:50)
【电脑网络|常用软件】端口映射工具合集(2019-02-24 09:40)
【电脑网络|常用软件】手游架设,页游架设常用工具(2019-02-24 09:32)
【电脑网络|常用软件】VMware Workstation各版本集合(2019-01-12 10:21)
【电脑网络|程序设计开发】mysql数据库管理工具集合(2019-01-12 10:17)