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

时间:2013-02-20 18:37:05

标签: string bash compare

我有:

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

...

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

MATCH.ext
qwer.ext
MATCH.ext

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

if (substr[i] == substr[j]) //now I can do something with string1 and string3

我怎样才能在Bash中执行此操作?感谢

1 个答案:

答案 0 :(得分: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