下面是直接copy的内容: (本来是不打算copy的,但是每次用到或看的时候都要跳转,感觉挺麻烦的。就直接copy了。)

方法一:利用grep查找

1 strA="long string"
2 strB="string"
3 result=$(echo $strA | grep "${strB}")
4 if [[ "$result" != "" ]]
5 then
6     echo "包含"
7 else
8     echo "不包含"
9 fi

先打印长字符串,然后在长字符串中 grep 查找要搜索的字符串,用变量result记录结果

如果结果不为空,说明strA包含strB。如果结果为空,说明不包含。

这个方法充分利用了grep 的特性,最为简洁。

方法二:利用字符串运算符

1 strA="helloworld"
2 strB="low"
3 if [[ $strA =~ $strB ]]
4 then
5     echo "包含"
6 else
7     echo "不包含"
8 fi

利用字符串运算符 =~ 直接判断strA是否包含strB。(这不是比第一个方法还要简洁吗摔!)

方法三:利用通配符

1 A="helloworld"
2 B="low"
3 if [[ $A == *$B* ]]
4 then
5     echo "包含"
6 else
7     echo "不包含"
8 fi

这个也很easy,用通配符*号代理strA中非strB的部分,如果结果相等说明包含,反之不包含。

方法四:利用case in 语句

1 thisString="1 2 3 4 5" # 源字符串
2 searchString="1 2" # 搜索字符串
3 case $thisString in
4     *"$searchString"*) echo Enemy Spot ;;
5     *) echo nope ;;
6 esa

这个就比较复杂了,case in 我还没有接触到,不过既然有比较简单的方法何必如此

方法五:利用替换

 1 STRING_A=$12 STRING_B=$23 if [[ ${STRING_A/${STRING_B}//} == $STRING_A ]]4     then5         ## is not substring.6         echo N7         return 08     else9         ## is substring.
10         echo Y
11         return 1
12     fi

【转载】Shell判断字符串包含关系的几种方法相关推荐

  1. shell脚本字符串截取的8种方法

    shell脚本字符串截取的8种方法 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. 1 echo ${var#*//} 其中 ...

  2. 判断字符串类型的几种方法

    判断字符串类型的几种方法 1,如果是判断该字符串或者该字是不是中文的话,用以下代码: String s1;if(s1.matches("[\\u4E00-\\u9FA5]+")){ ...

  3. mysql数据库包含_MySQL数据库判断字符串包含的三种方法

    方法一:SELECT * FROM users WHERE emails like "%b@email.com%"; 方法二: 利用 mysql 字符串函数 find_in_set ...

  4. shell中字符串截取的几种方法

    在对嵌入式开发板试验的时候,经常会自行写一些小的脚本,来验证开发板的运行状态,其中就用到截取字符串的操作,由于一直记不住,索性就写到这里. 1. 使用cut str="abcdefg&quo ...

  5. JS判断字符串长度的几种方法(区分中文和英文)

    目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) String.prototype.gblen = function() { var len = 0; for (var i=0; i< ...

  6. 【shell】if常用判断|if目录是否为空|判断字符串包含关系|与或

    目录 shell中[ ]和[[]]的区别 判断目录是否为空 判断字符串包含关系 if判断写成一行/命令行中用if 单引号和双引号的区别 if常用判断 作者:bandaoyu 持续更新,连接:http: ...

  7. (转)Shell中获取字符串长度的七种方法

    Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...

  8. Shell脚本中计算字符串长度的5种方法

    这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前S ...

  9. shell php文件是否存在字符串中,shell 判断字符串是否存在数组中的实现示例

    语法格式: [[ "${array[@]}" =~ "字符串" ]] 示例: #!/bin/sh ##数组 array=( address base cart ...

最新文章

  1. 一起学Hadoop——实现两张表之间的连接操作
  2. VS2012下基于Glut OpenGL glScissor示例程序:
  3. 看完书要及时消化(1)《暗时间》
  4. WordPress永久链接 静态化教程
  5. 构建可读性更高的 ASP.NET Core 路由
  6. JS+HTML画图的几种方法
  7. 处理硬件设备访问权限问题
  8. lisp scheme 果壳_common lisp和scheme的区别
  9. Pandas 文本数据方法 repeat( )
  10. python不换行空格输出_解决Python print输出不换行没空格的问题
  11. appcan代码迁出失败
  12. Could not find goal ‘assembly‘ in plugin org.apache.maven.plugins:maven-assembly-plugin: among avai
  13. lol服务器维护是拳头,问拳头-英雄联盟官方网站-腾讯游戏
  14. Vmware14安装ubuntu18
  15. Android 9.0蓝牙音乐上一首、下一首、暂停和播放
  16. 卫星移动通信现状与未来发展
  17. 利用GATK4.1 mutect2寻找体细胞突变(SNV和INDEL)
  18. 4x root 红米_小米红米Note4X获取root权限教程
  19. python 爬取企业注册信息_读书笔记(十)——python简单爬取企查查网企业信息,并以excel格式存储...
  20. [USACO 2.2.1] Preface Numbering

热门文章

  1. Xtreme1如何利用AI加速多模态训练数据的处理
  2. windows下安装wget进行远程下载
  3. 成都PC网站建设需要考虑哪些费用呢
  4. 产品之路的随想(社区版)
  5. Zebra 条码打印机应用开发实践
  6. 吐血总结,彻底明白 python3 编码原理
  7. VVC系列(二)编码结构和块划分准则
  8. openlayers 加载天地图及自定义EPSG:4490坐标系以及axisOrientation的值为enu或neu的问题
  9. C语言循环结构设计输出九九乘法表,C语言嵌套循环之输出九九乘法表
  10. 虚幻引擎源码分析(5)