#!/bin/bash
# Boyer-Moore string search
# inputs: $1 - substring, $2 - string
declare -i index=-1;
for((i=0; i < ${#2}; i++))
do
for((j=${#1}-1; j >= 0; j--))
# loop for individual substring comparisons
do
if [ "${1:j:1}" = "${2:i+j:1}" ]
# compares backward
then
index=i;
else
index=-1;
i+=(${#1}-j);
# Boyer-Moore jump
break;
fi
done
if [ $index -ne -1 ]
then
break;
# stop if substring has been found
fi
done
echo $index;
unset index;
Sorry for messing up the last post.


Sign In
Create Account


Back to top









