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

2022-09-28 05:42:09 字數 1425 閱讀 1256

前言

現在每次分析**日誌的時候都需程式設計客棧要判斷百度蜘蛛是不是真實的蜘蛛,nslehlttzvrzookup之後需要判斷結果中是否包含「baidu」字串

以下給出一些shell中判斷字串包含的方法,**程式設計師程式設計客棧問答** stackoverflow 以及segmentfault。

方法一:利用grep查詢

stra="long string"

strb="string"

res $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"*) echo enemy spot ;;

*) echo nope ;;

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

方法五:利用替換

string_a=$1

string_b=$2

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

then

## is not substring.

echo n

return 0

else

## is substring.

echo y

return 1

fi這個也挺複雜

總結本文標題: 用shell判斷字串包含關係的方法小結

本文位址:

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

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

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

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

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

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