国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

用Shell判斷字符串包含關系的方法小結

2019-10-26 18:49:32
字體:
來源:轉載
供稿:網友

前言

現在每次分析網站日志的時候都需要判斷百度蜘蛛是不是真實的蜘蛛,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=$1STRING_B=$2if [[ ${STRING_A/${STRING_B}//} == $STRING_A ]]  then    ## is not substring.    echo N    return 0  else    ## is substring.    echo Y    return 1  fi

這個也挺復雜

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静安区| 得荣县| 前郭尔| 禄丰县| 巢湖市| 奉新县| 苍梧县| 江华| 长子县| 手游| 高雄市| 广宁县| 广丰县| 德钦县| 元氏县| 恩平市| 博湖县| 新绛县| 邵阳县| 游戏| 永安市| 岳池县| 图木舒克市| 屏南县| 绵竹市| 改则县| 石阡县| 醴陵市| 南通市| 平定县| 汉源县| 广宁县| 普兰县| 大连市| 阿图什市| 辰溪县| 秭归县| 金寨县| 水富县| 成都市| 永嘉县|