#!/bin/sh # SubStr.sh # Mon Mar 30 17:10:41 PST 2009 # Chieh Cheng # http://www.CynosureX.com/ # GNU General Public License (GPL) Version 2, June 1991 scriptName=`basename "$0"` extractEnd () { string="$1" begin=$2 length=`StrLen.sh "${string}"` chars=`expr ${length} - ${begin}` regExp="`genRegEx ${chars}`$" echo "${string}" | grep -o "${regExp}" | head -1 } genRegEx () { chars=$1 expression="" count=0 while [ ${count} -lt ${chars} ] do expression="${expression}." count=`expr ${count} + 1` done echo "${expression}" } usage () { echo " Usage: ${scriptName} \"string\" \"begin index\" [ \"end index\" ]" echo echo " begin index - inclusive" echo " end index - exclusive" } if [ $# -ge 2 ] && [ $# -le 3 ] then str="$1" begin=$2 if [ $# -eq 3 ] then end=$3 else end=999999999999999999 fi if [ ${begin} -gt ${end} ] then tmp=${end} end=${begin} begin=${tmp} fi if [ ${begin} -ne ${end} ] then len=`StrLen.sh "${str}"` if [ ${begin} -lt ${len} ] then if [ ${end} -le ${len} ] then chars=${end} regExp="^`genRegEx ${chars}`" result=`echo "${str}" | grep -o "${regExp}" | head -1` extractEnd "${result}" ${begin} else extractEnd "${str}" ${begin} fi fi fi else usage fi