中国源码网

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

  • 时间:2018-11-25 19:49 编辑:转载 来源:网络 阅读:627
  • 扫一扫,手机访问
摘要:用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)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【电脑网络|程序设计开发】Vmware虚拟机玩3D游戏出现Sorry,this application cannot run under a Virtual Machine错误的解决方法(2020-01-14 14:46)
【电脑网络|】回合手游【巅峰西游】修改路径大全(2019-12-27 12:01)
【数码/游戏|手机游戏】回合手游【巅峰西游】删档指令(2019-12-27 12:00)
【电脑网络|程序设计开发】解压时候提示压缩包损坏|rar4格式和rar格式有什么区别(2019-12-21 10:28)
【电脑网络|服务器应用】ThinkPHP Apache和Nginx伪静态规则整理(2019-12-15 11:06)
【数码/游戏|手机游戏】战神引擎开外网需要映射哪些端口(2019-11-25 12:30)
【电脑网络|服务器应用】阿里云ECS云服务器如何开启端口图文教程(2019-11-25 12:14)
【电脑网络|服务器应用】如何开启阿里云服务器端口?阿里云服务器怎么开端口?(2019-11-25 12:01)
【电脑网络|服务器应用】Win10如何打开端口?win10系统如何在防火墙里开放端口?(2019-11-25 11:45)
【电脑网络|服务器应用】Win7如何开启端口?win7系统如何在防火墙里开放端口?(2019-11-25 10:33)

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