[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 575
  • Last Modified:

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
0
tommym121
Asked:
tommym121
  • 2
1 Solution
 
tommym121Author Commented:
Ah, I find a solution.

YY=`expr length $MMM`  
GGG=$(echo $OUT_DATA | cut -c1-$YY)
echo "GGG = $GGG"

GGG = ABCDEFG

Any better idea?

It works.
0
 
ozoCommented:
Did you mean
EEE=`echo $OUT_DATA | awk -F "ABC" '{printf("%s", $2)}'`
0
 
ozoCommented:
or did you mean
DDD=${OUT_DATA:0:${#MMM}}
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now