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

 更新时间:2016年12月19日 11:26:41   作者:林间  
这篇文章主要给大家介绍了关于用Shell判断字符串包含关系的几种方法,其中包括利用grep查找、利用字符串运算符、利用通配符、利用case in 语句以及利用替换等方法,每个方法都给出了详细的示例代码与介绍,有需要的朋友们可以参考参考借鉴,下面来一起看看吧。

前言

现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,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

这个也挺复杂

总结

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

相关文章

  • 实时查看系统流量的Shell脚本分享

    实时查看系统流量的Shell脚本分享

    这篇文章主要介绍了实时查看系统流量的Shell脚本分享,本文直接给出实现代码,使用时保存到一个sh文件中并运行即可,需要的朋友可以参考下
    2014-12-12
  • windows下写的shell脚本在linux执行出错的解决办法

    windows下写的shell脚本在linux执行出错的解决办法

    这篇文章主要介绍了windows下写的shell脚本在linux执行出错的解决办法,需要的朋友可以参考下
    2014-03-03
  • 一问弄懂Shell变量四大分类

    一问弄懂Shell变量四大分类

    Shell变量分为环境变量、本地变量、位置参数变量和特殊变量,本文就详细的介绍一下这四种变量的具体使用,具有一定的参考,感兴趣的可以了解一下
    2023-05-05
  • shell 编程中空格的使用方法

    shell 编程中空格的使用方法

    这篇文章主要介绍了shell 编程中空格的使用方法,需要的朋友可以参考下
    2015-01-01
  • 在任意目录下使用某个shell脚本的方法

    在任意目录下使用某个shell脚本的方法

    今天小编就为大家分享一篇在任意目录下使用某个shell脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 一文详解Linux权限的相关知识

    一文详解Linux权限的相关知识

    Linux权限是用来管理文件和目录访问权限的机制,每个文件和目录都有一个所有者和一个所属组,同时也有针对所有者、所属组和其他用户的权限设置,本篇文章将讲授Linux的权限相关的知识,需要的朋友可以参考下
    2023-09-09
  • shell脚本实现统计文件大小、批量创建用户的示例

    shell脚本实现统计文件大小、批量创建用户的示例

    这篇文章主要介绍了shell脚本实现统计文件大小、批量创建用户的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • linux shell之通过标识测试文件系统属性的方法示例

    linux shell之通过标识测试文件系统属性的方法示例

    今天小编就为大家分享一篇关于linux shell之通过标识测试文件系统属性的方法示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Linux监控cpu以及内存使用情况之top命令(详解)

    Linux监控cpu以及内存使用情况之top命令(详解)

    下面小编就为大家带来一篇Linux监控cpu以及内存使用情况之top命令(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 深入探究Linux shell的实现原理

    深入探究Linux shell的实现原理

    这篇文章主要介绍了Linux shell的实现原理,文中通过代码示例和图文介绍的非常详细,对大家探究Linux shell的实现原理有一定的帮助,需要的朋友可以参考下
    2024-02-02

最新评论