Usar expansión de parámetros:
t="MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12"
searchstring="IP for"
rest=${t#*$searchstring}
echo $(( ${#t} - ${#rest} - ${#searchstring} ))
$rest contiene la parte de $t después $cadena de búsqueda. Por lo tanto, la posición inicial de la subcadena es la longitud de la cadena completa menos la longitud del $resto menos la longitud de la propia $cadena de búsqueda.
Aún mejor y adecuado para más casos (considere '#' versus '##' y tener más de una instancia de 'IP para') sería eliminar de la cadena coincidente hasta el final y usar la longitud de lo que queda.
text="MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12"
search="IP for"
prefix=${text%%$search*}
echo ${#prefix}