日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

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

來源: 責(zé)編: 時間:2024-01-10 09:35:45 191觀看
導(dǎo)讀在 bash 腳本中,有不止一種檢查子字符串的方法,我們今天介紹一些簡單的例子,然后在分享一個常用的 bash 腳本。我們在寫 bash 腳本的時候,假如有一個字符串,我們想檢查其中是否包含另一個子字符串,那這個時候需要怎樣做呢?這

在 bash 腳本中,有不止一種檢查子字符串的方法,我們今天介紹一些簡單的例子,然后在分享一個常用的 bash 腳本。Mmm28資訊網(wǎng)——每日最新資訊28at.com

Mmm28資訊網(wǎng)——每日最新資訊28at.com

我們在寫 bash 腳本的時候,假如有一個字符串,我們想檢查其中是否包含另一個子字符串,那這個時候需要怎樣做呢?這里介紹Shell判斷字符串包含關(guān)系的幾種方法Mmm28資訊網(wǎng)——每日最新資訊28at.com

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 的特性,最為簡潔。Mmm28資訊網(wǎng)——每日最新資訊28at.com

2、字符串運算符

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

利用字符串運算符 =~ 直接判斷str1是否包含str2。Mmm28資訊網(wǎng)——每日最新資訊28at.com

3、利用通配符

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

用通配符*號代理str1中非str2的部分,如果結(jié)果相等說明包含,反之不包含。Mmm28資訊網(wǎng)——每日最新資訊28at.com

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

注意下文中的用的是[[]]還是[]Mmm28資訊網(wǎng)——每日最新資訊28at.com

Shell判斷文件是否包含給定字符串Mmm28資訊網(wǎng)——每日最新資訊28at.com

給定一個字符,比方說“Hello Weijishu”,查找相應(yīng)文件中是否包含該字符。Mmm28資訊網(wǎng)——每日最新資訊28at.com

方式1:grepMmm28資訊網(wǎng)——每日最新資訊28at.com

# grep -c 返回 file中,與str匹配的行數(shù)grep -c str fileFIND_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 0fi

方式2:cat、while、read組合使用。使用這種方式,要注意時while read 在子shell中運行。Mmm28資訊網(wǎng)——每日最新資訊28at.com

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


Mmm28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-59671-0.htmlShell判斷是否包含給定字符串

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 維護太累了!2024年,我們還需要前端框架嗎

下一篇: 全球汽車配置器開發(fā)商生態(tài)圈采用 NVIDIA Omniverse

標(biāo)簽:
  • 熱門焦點
  • 對標(biāo)蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據(jù)今天鴻蒙OS 4.0的現(xiàn)場演示顯示,華為的實況窗可以更高效的展現(xiàn)出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機的發(fā)布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發(fā)布,本次就這款耳機新品給大家?guī)硪粋€簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產(chǎn)
  • 十個簡單但很有用的Python裝飾器

    裝飾器(Decorators)是Python中一種強大而靈活的功能,用于修改或增強函數(shù)或類的行為。裝飾器本質(zhì)上是一個函數(shù),它接受另一個函數(shù)或類作為參數(shù),并返回一個新的函數(shù)或類。它們通常用
  • 微軟邀請 Microsoft 365 商業(yè)用戶,測試視頻編輯器 Clipchamp

    8 月 1 日消息,微軟近日宣布即將面向 Microsoft 365 商業(yè)用戶,開放 Clipchamp 應(yīng)用,邀請用戶通過該應(yīng)用來編輯視頻。微軟于 2021 年收購 Clipchamp,隨后開始逐步整合到 Microsof
  • 騰訊蓋樓,字節(jié)拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之“想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!”曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯(lián)網(wǎng)企業(yè)調(diào)整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 造車兩年股價跌六成,小米的估值邏輯變了嗎?

    如果從小米官宣造車后的首個交易日起持有小米集團的股票,那么截至2023年上半年最后一個交易日,投資者將浮虧59.16%,同區(qū)間的恒生科技指數(shù)跌幅為52.78%
  • AI藝術(shù)欣賞體驗會在上海梅賽德斯奔馳中心音樂俱樂部上演

    光影交錯的鏡像世界,虛實幻化的視覺奇觀,虛擬偶像與真人共同主持,這些場景都出現(xiàn)在2019世界人工智能大會的舞臺上。8月29日至31日,“AI藝術(shù)欣賞體驗會”在上海
  • 北京:科技教育體驗基地開始登記

      北京“科技館之城”科技教育體驗基地登記和認證工作日前啟動。首批北京科技教育體驗基地擬于2023年全國科普日期間掛牌,后續(xù)還將開展常態(tài)化登記。  北京科技教育體驗基
Top 主站蜘蛛池模板: 平陆县| 东乌珠穆沁旗| 大兴区| 汝州市| 将乐县| 许昌市| 柳州市| 淮阳县| 新宁县| 大同县| 涞水县| 马尔康县| 大邑县| 忻城县| 明光市| 维西| 余江县| 方正县| 临湘市| 天柱县| 阿坝| 鹤峰县| 旬邑县| 土默特左旗| 麻栗坡县| 台东市| 高碑店市| 云和县| 克东县| 满城县| 谷城县| 邳州市| 鄂温| 广饶县| 溧水县| 德庆县| 泉州市| 毕节市| 徐州市| 天长市| 洛南县|