パラメータ展開を使用:
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 には $t after の部分が含まれます $検索文字列.したがって、部分文字列の開始位置は、文字列全体の長さから $rest の長さを引いて $searchstring 自体の長さを引いたものになります。
より多くのケース (「#」と「##」、および「IP for」のインスタンスが複数あることを考慮してください) に適しているのは、一致する文字列から最後まで削除し、残りの長さを使用することです。
text="MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12"
search="IP for"
prefix=${text%%$search*}
echo ${#prefix}