tommym121
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
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
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
or did you mean
DDD=${OUT_DATA:0:${#MMM}}
DDD=${OUT_DATA:0:${#MMM}}
EEE=`echo $OUT_DATA | awk -F "ABC" '{printf("%s", $2)}'`