How can I extract a substring after a certain string in ksh?
ksh, solaris-10, string, substring
Solution
Your command is failing for multiple reasons: you need something like
TEMP_VALUE=$(print "$line" | awk '...')
You can use ksh parameter expansion though:
line="The important variable=123 the rest is not important."
tmp=${line#*=} # strip off the stuff up to and including the equal sign
num=${tmp%% *} # strip off a space and all following the first space
print $num # ==> 123
Look for "parameter substitution" in the ksh man page.
Problem
If I have a string like this: ``` The important variable=123 the rest is not important. ``` I want to extract the "123" part in ksh. So far I have tried: ``` print awk ' {substr($line, 20) }' | read TEMP_VALUE ``` (This `20` part is just temporary, until I work out how to extract the start position of a string.) But this just prints `awk ' {substr($line, 20) }' | read TEMP_VALUE` (though this format does work with code like this: `print ${line} | awk '{print $1}' | read SINGLE_FILE`). Am I missing a simple command to do this (that is in other languages)? Running Solaris 10.