Szerintem az esc() függvényben volt sok a backslash. Neked azért működött, mert a helyettesítést nem raktad idézőjelbe, s akkor tényleg két backslash kell, de nekem csak egy, mert idézőjelen belülre tettem:
#!/bin/bash
esc() {
sed 's,/,\/,g' <<<"$1"
}
par=''
while [ $# -gt 0 ]; do
par="$par$1"
[ $# -gt 1 ] && par="${par}.*"
shift
done
sed -n "/^`esc $par`/,/^[a-z]/p" | sed '$d'
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE