一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

介紹Shell判斷字符串包含關系的幾種方法

馬哥Linux運維 ? 來源:csdn ? 2023-05-12 15:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在 bash 腳本中,有不止一種檢查子字符串的方法,我們今天介紹一些簡單的例子,然后在分享一個常用的 bash 腳本。

我們在寫 bash 腳本的時候,假如有一個字符串,我們想檢查其中是否包含另一個子字符串,那這個時候需要怎樣做呢?這里介紹Shell判斷字符串包含關系的幾種方法

1、通過grep來判斷:

str1="abcdefgh"
str2="def"
result=$(echo $str1 | grep "${str2}")
if [[ "$result" != "" ]]
then
    echo "包含"
else
    echo "不包含"
fi

先打印長字符串,然后在長字符串中 grep 查找要搜索的字符串,用變量result記錄結(jié)果,如果結(jié)果不為空,說明str1包含str2。如果結(jié)果為空,說明不包含。這個方法充分利用了grep 的特性,最為簡潔。

2、字符串運算符

str1="abcdefgh"
str2="def"
if [[ $str1 =~ $str2 ]]
then
    echo "包含"
else
    echo "不包含"
fi

利用字符串運算符 =~ 直接判斷str1是否包含str2。

3、利用通配符

str1="abcdefgh"
str2="def"
if [[ $str1 == *$str2* ]]
then
    echo "包含"
else
    echo "不包含"
fi

用通配符*號代理str1中非str2的部分,如果結(jié)果相等說明包含,反之不包含。

4、利用case in 語句

str1="abcdefgh"
str2="def"
case $str1 in 
    *"$str2"*) echo Enemy Spot ;;
    *) echo nope ;;
esac

5、利用替換

str1="abcdefgh"
str2="def"
if [[ ${str1/${str2}//} == $str1 ]]
    then
       echo "不包含"
    else
      echo "包含"
fi

注意下文中的用的是[[]]還是[]

Shell判斷文件是否包含給定字符串

給定一個字符,比方說“Hello Weijishu”,查找相應文件中是否包含該字符。

方式1:grep

# grep -c 返回 file中,與str匹配的行數(shù)
grep -c str file




FIND_FILE="/home/linduo/test/Test.txt"
FIND_STR="Hello Weijishu"
# 判斷匹配函數(shù),匹配函數(shù)不為0,則包含給定字符
if [ `grep -c "$FIND_STR" $FIND_FILE` -ne '0' ];then
    echo "The File Has Hello Weijishu!"
    exit 0
fi 

方式2:cat、while、read組合使用。使用這種方式,要注意時while read 在子shell中運行。

FIND_FILE="/home/weijishu/test/Test.txt"
FIND_STR="Hello Weijishu"
cat $FIND_FILE| while read line
do
if [[ $line =~ $FIND_STR ]];then
    echo "The File Has Hello Weijishu!"
fi
done





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    589

    瀏覽量

    21247
  • Shell
    +關注

    關注

    1

    文章

    372

    瀏覽量

    24148

原文標題:Shell判斷是否包含給定字符串

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux Shell系列教程之Shell字符串用法

    Shell字符串用法Shell中的字符串可以用引號包起來,也可以不用引號。用引號的話可以用雙引號,也可以用單引號。其單雙引號的區(qū)別跟PHP相類似。接下來給大家
    發(fā)表于 08-29 16:01

    Python字符串的特點和修改字符串的常見四種方法

    Python中修改字符串幾種方法
    發(fā)表于 02-26 16:52

    字符串移位包含的問題解決方案

    問題:給定字符串s和t,判斷是否字符串t能通過將s移位后的字符串包含。 方法一 最簡單的
    發(fā)表于 11-29 10:05 ?1150次閱讀

    教你7個Python判斷字符串是否包含方法

    教你7個Python判斷字符串是否包含方法
    的頭像 發(fā)表于 08-17 10:52 ?5375次閱讀
    教你7個Python<b class='flag-5'>判斷</b><b class='flag-5'>字符串</b>是否<b class='flag-5'>包含</b>子<b class='flag-5'>串</b>的<b class='flag-5'>方法</b>

    C語言中字符串拷貝函數(shù)有幾種方法?

    strcpy,即string copy(字符串復制)的縮寫。 是C語言標準庫中實現(xiàn)字符串拷貝的一個函數(shù)。 各大公司筆試題最喜歡考的一道題,快來看看,你會幾種方法? 問:你會如何實現(xiàn)這個函數(shù)呢? 1
    的頭像 發(fā)表于 03-12 14:16 ?5039次閱讀

    平化字符串處理方法簡介

    這里介紹一組有用的字符串處理方法,即平化至字符串和從字符串還原。
    的頭像 發(fā)表于 09-26 10:20 ?2630次閱讀

    如何利用Java判斷一個字符串是否包含某個字符

    如何利用Java通過不同的方法判斷一個字符串是否包含某個字符。 **2 ****方法**
    的頭像 發(fā)表于 02-17 15:13 ?1896次閱讀
    如何利用Java<b class='flag-5'>判斷</b>一個<b class='flag-5'>字符串</b>是否<b class='flag-5'>包含</b>某個<b class='flag-5'>字符</b>

    python字符串有哪些特定方法

    python字符串序列操作也適用于列表和元組。 python字符串還有獨有方法,即字符串對象的函數(shù),其他對象不可調(diào)用,只有字符串對象可
    的頭像 發(fā)表于 02-23 15:02 ?945次閱讀

    C語言定義字符串幾種方法

    C語言中定義字符串有哪些方法?
    的頭像 發(fā)表于 03-31 09:41 ?3949次閱讀

    Python中檢查字符串包含方法

    Python 有多種處理字符串方法。今天我們介紹如何檢查一個字符串中是否包含另一個字符串
    的頭像 發(fā)表于 05-14 16:02 ?1.6w次閱讀

    Python 如何判斷字符串是否包含

    方法 使用 字符串 對象的 find 方法,如果有找到子,就可以返回指定子字符串中的出現(xiàn)
    的頭像 發(fā)表于 11-02 10:55 ?729次閱讀

    mysql字符串包含某個字符串

    將詳盡、詳實、細致地探討MySQL中字符串包含的實現(xiàn)方法。 在MySQL中,可以通過使用內(nèi)建函數(shù)和通配符來實現(xiàn)字符串包含的操作。下面將詳細
    的頭像 發(fā)表于 11-16 14:52 ?4478次閱讀

    linux搜索文件里的字符串

    在Linux系統(tǒng)中,我們可以使用各種方法來搜索文件中的字符串。在本文中,我將為您詳細介紹幾種常用的方法和工具。讓我們開始吧! grep命令
    的頭像 發(fā)表于 11-23 10:20 ?1952次閱讀

    oracle判斷字符串包含某個字符

    字符串操作是任何編程語言中都非常重要的一部分,Oracle數(shù)據(jù)庫作為目前最常用的關系型數(shù)據(jù)庫之一,也提供了豐富的字符串操作函數(shù)和方法。在本文中,我們將詳細解析如何在Oracle中
    的頭像 發(fā)表于 12-06 09:53 ?1.7w次閱讀

    C語言字符串編譯函數(shù)介紹

    在C語言中,字符串實際上是使用null字符O'終止的一維字符數(shù)組。因此,一個以null結(jié)尾的字符串,包含了組成
    的頭像 發(fā)表于 03-07 16:18 ?704次閱讀
    C語言<b class='flag-5'>字符串</b>編譯函數(shù)<b class='flag-5'>介紹</b>