Shell字串匹配

2021-07-07 05:25:30 字數 771 閱讀 1724

方法一

網上看到這兩個方法,貌似有些問題

echo $line | grep -e "*repeat*"

test $? -eq 0 && echo "yes" || echo "no"

用-e還是-q需要驗證

echo $line | grep -q "*repeat*"                             #這個貌似

test $? -eq 0 && echo "yes" || echo "no"             #這個沒有搞懂

這個是根據上面的做了些改進的方法

str_0="higoogle"

pat="goo"

echo $str_0|grep -e $pat > /dev/null       #輸出到空裝置,這樣不會列印grep出來的結果,同時$?結果也能符合需要

if [ $? -eq 0 ]; then

echo "yes"

else

echo "no"

fi方法二

可以用=~ 來匹配正則 但是兩邊必須是雙括號

if[["$line"=~".*repeat.*"]];then

echo yes

fi

上面 【.*】表示匹配任意長度,由任意字元構成的字串 

shell字串匹配的實現

一 簡介 bash shell提供了很多字串和檔案處理的命令。如awk expr grep sed等命令,還有檔案的排序 合併和分割等一系列的操作命令。grep sed和awk內容比較多故單獨列出,本文只涉及字串的處理和部分文字處理命令。二 字串處理 1 expr命令 expr引出通用求值表示式,可...

字串匹配

題目描述 讀入資料string 然後讀入乙個短字串。要求查詢string 中和短字串的所有匹配,輸出行號 匹配字串。匹配時不區分大小寫,並且可以有乙個用中括號表示的模式匹配。如 aa 123 bb 就是說aa1bb aa2bb aa3bb都算匹配。輸入 輸入有多組資料。每組資料第一行輸入n 1 n ...

字串匹配

time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現...