方法一
網上看到這兩個方法,貌似有些問題
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中保證不出現...