LINUX.ORG.RU

История изменений

Исправление vodz, (текущая версия) :

С кавычками у Вас не очень. Попробуйте в качестве A=«A.B. .*», то есть с пробельными и метасимволами. Зачем Вам AS и BS я вообще не понял. Так что как-то так:

#!/usr/bin/bash

A="A.B. .*"
B="AA.BB.CC.DD.EE"

IFS='.' read -r -a AW <<< "$A"
IFS='.' read -r -a BW <<< "$B"

(( N = ${#AW[@]} < ${#BW[@]} ? ${#AW[@]} : ${#BW[@]} ))

OLD_IFS=$IFS
IFS=
AW=${AW[@]:0:N}
BW=${BW[@]:0:N}
IFS=$OLD_IFS

AN=${A:0:${#AW}}
BN=${B:0:${#BW}}

echo "$AN"
echo "$BN"

[[ $AN == "$BN" ]] && echo MATCH || echo NO MATCH

Исходная версия vodz, :

С кавычками у Вас не очень. Попробуйте в качестве A=«A.B. .*», то есть с пробельными и метасимволами. Зачем Вам AS и BS я вообще не понял. Так что как-то так:

#!/usr/bin/bash

A="A.B. .*"
B="AA.BB.CC.DD.EE"

IFS='.' read -r -a AW <<< "$A"
IFS='.' read -r -a BW <<< "$B"

(( N = ${#AW[@]} < ${#BW[@]} ? ${#AW[@]} : ${#BW[@]} ))

OLD_IFS=$IFS
IFS=
AJ=${AW[@]:0:$N}
BJ=${BW[@]:0:$N}
IFS=$OLD_IFS

AN=${A:0:${#AJ}}
BN=${B:0:${#BJ}}

echo "$AN"
echo "$BN"

[[ $AN == "$BN" ]] && echo MATCH || echo NO MATCH