当前位置: 首页 > 编程笔记 >

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

吕胤
2023-03-14
本文向大家介绍用Shell判断字符串包含关系的方法小结,包括了用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

这个也挺复杂

总结

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

 类似资料:
  • 本文向大家介绍JS判断字符串包含的方法,包括了JS判断字符串包含的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS判断字符串包含的方法。分享给大家供大家参考。具体如下: 1.  例子: 2. indexOf用法: JavaScript中indexOf函数方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串, 则返回 -1。如果 startindex

  • 本文向大家介绍python七种方法判断字符串是否包含子串,包括了python七种方法判断字符串是否包含子串的使用技巧和注意事项,需要的朋友参考一下 1. 使用 in 和 not in in 和 not in 在 Python 中是很常用的关键字,我们将它们归类为 成员运算符。 使用这两个成员运算符,可以很让我们很直观清晰的判断一个对象是否在另一个对象中,示例如下: 2. 使用 find 方法 使用

  • 本文向大家介绍Java判断字符串中是否包含中文方法,包括了Java判断字符串中是否包含中文方法的使用技巧和注意事项,需要的朋友参考一下 今天和同事在讨论一个问题,需要检查“输入的字符串中是否包含中文”,刚开始想到是用正则表达式,正则表达式中是以[u4e00-u9fa5]来全匹配字符是否是中文,但现在面临的问题是这个字符串中还可能包含英文字符、数字、特殊字符,一时也没想出能匹配该场景的正则表达式,后

  • 本文向大家介绍JavaScript判断一个字符串是否包含指定子字符串的方法,包括了JavaScript判断一个字符串是否包含指定子字符串的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript判断一个字符串是否包含指定子字符串的方法。分享给大家供大家参考。具体分析如下: 下面的JS代码,为String对象定义了一个contains方法用于判断字符串是否包含子字符串,非常有

  • 本文向大家介绍Mysql字符串字段判断是否包含某个字符串的2种方法,包括了Mysql字符串字段判断是否包含某个字符串的2种方法的使用技巧和注意事项,需要的朋友参考一下 假设有个表: 初始化表,并添加些记录。     Mysql 中有些字段是字符串类型的,如何查找其中包含某些字符的记录呢? 方法一: 这样bb@email.com的用户也查出来了,不符合预期。 方法二: 利用mysql 字符串函数 f

  • 本文向大家介绍Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享,包括了Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享的使用技巧和注意事项,需要的朋友参考一下 一、判断字符串中包含中文字符的方法 遍历数组,对每个字节使用string.byte(),发现有大于127的,就是汉字,可以参照下面的代码。 二、计算字符串宽度函数