Link to home
Start Free TrialLog in
Avatar of tommym121
tommym121Flag for Canada

asked on

Get the matching string prefix

Hi, I would like to exact the first X character of a string S1 where X is the lenght of a string S2. How to do that in shell ksh script

Here is my testing script

#/bin/ksh
OUT_DATA="ABCDEFGHIJKLMN 111111 22222"
MMM="ABCDEFG"
 
echo "OUT_DATA = $OUT_DATA"
 
EEE=`echo $OUT_DATA | awk -F "ABC" '{printf("%s", $1)}'`
FFF=`echo $OUT_DATA | awk "ABC" '{printf("%s", $1)}'`

echo "EEE = $EEE"
echo "FFF = $FFF"

DDD=$(echo $OUT_DATA |awk '{print substr($0, 0 , 7))}')

Both EEE and FFF returns empty string.
DDD is okay, I am getting ABCDEFG back
But, how do i make it more dynamic? That is, somehow the length field in substr can
be determined based on the length of $MMM
ASKER CERTIFIED SOLUTION
Avatar of tommym121
tommym121
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of ozo
Did you mean
EEE=`echo $OUT_DATA | awk -F "ABC" '{printf("%s", $2)}'`
or did you mean
DDD=${OUT_DATA:0:${#MMM}}