Bash:在点字符后得到子串,比较

JDS*_*JDS 2 string bash compare

我有:

string1="start1.MATCH.ext"
string2="start2.qwer.ext"
string3="start3.MATCH.ext"
Run Code Online (Sandbox Code Playgroud)

...

我希望在第一个句号之后取出每个字符串并提取部分,所以

MATCH.ext
qwer.ext
MATCH.ext
Run Code Online (Sandbox Code Playgroud)

然后比较这些子串,以便我可以在if语句中执行某些操作(如果它们匹配):

if (substr[i] == substr[j]) //now I can do something with string1 and string3
Run Code Online (Sandbox Code Playgroud)

我怎么能在Bash中这样做?谢谢

Kev*_*vin 5

您可以使用切断字符串的前面${var#*.},并与if [[ ... ]]以下内容进行比较:

string1="start1.MATCH.ext"
string2="start2.qwer.ext"
string3="start3.MATCH.ext"

if [[ ${string1#*.} = ${string3#*.} ]]; then
        echo They match
else
        echo No match
fi
Run Code Online (Sandbox Code Playgroud)