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

2021-09-24 15:46:05 字數 1588 閱讀 6720

這篇文章主要給大家介紹了關於用shell判斷字串包含關係的幾種方法,其中包括利用grep查詢、利用字串運算子、利用萬用字元、利用case in 語句以及利用替換等方法,每個方法都給出了詳細的示例**與介紹,有需要的朋友們可以參考參考借鑑,下面來一起看看吧。

前言

方法一:利用grep查詢

stra="long string"

strb="string"

result=$(echo$stra | grep"$")

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"*)echoenemy spot ;;

*)echonope ;;

esa

這個就比較複雜了,case in 我還沒有接觸到,不過既然有比較簡單的方法何必如此

方法五:利用替換

string_a=$1

string_b=$2

if[[ $//} == $string_a ]]

then

## is not substring.

echon

return0

else

## is substring.

echoy

return1

fi

這個也挺複雜

總結

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

前言 方法一 利用grep查詢 stra long string strb string result echo stra grep if result then echo 包含 else echo 不包含 fi 先列印長字串,然後在長字串中 grep 查詢要搜尋的字串,用變數result記錄結果 ...

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

前言 現在每次分析 日誌的時候都需程式設計客棧要判斷蜘蛛是不是真實的蜘蛛,nslehlttzvrzookup之後需要判斷結果中是否包含 baidu 字串 以下給出一些shell中判斷字串包含的方法,程式設計師程式設計客棧問答 stackoverflow 以及segmentfault。方法一 利用gr...

Shell判斷字串包含關係的方法小結

用shell指令碼的編寫中,常用到字串包含關係的判斷。利用grep查詢stra long string strb string result echo stra grep if result then echo 包含 else echo 不包含 fi先列印長字串,然後在長字串中 grep 查詢要搜尋...