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

首頁 > 開發 > Linux Shell > 正文

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

2020-07-27 18:59:54
字體:
來源:轉載
供稿:網友

前言

現在每次分析網站日志的時候都需要判斷百度蜘蛛是不是真實的蜘蛛,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

這個也挺復雜

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳普湖县| 郓城县| 汤阴县| 成安县| 南宁市| 岗巴县| 墨脱县| 温泉县| 红安县| 固安县| 盐山县| 尖扎县| 杂多县| 体育| 湖南省| 灵丘县| 南溪县| 武城县| 晋中市| 黄梅县| 辽阳市| 文山县| 南平市| 进贤县| 南充市| 佛坪县| 镇康县| 土默特右旗| 吴江市| 胶州市| 新绛县| 礼泉县| 孝感市| 兴安县| 武穴市| 北票市| 天水市| 南汇区| 孟州市| 平安县| 江口县|