sed - Replace nth regex issue -
if want remove first period , behind string, in sed can e.g. do:
echo 2.6.0.3-8 | sed 's/\..*//' output:
2 but if want remove second period , behind it, think should able (gnu sed):
echo 2.6.0.3-8 | sed 's/\..*//2g' however output is:
2.6.0.3-8 from manual:
'number' replace numberth match of regexp.
what have missed here?
you're there getting burned .* , greediness. have specific case replace .* [^.]*:
$ echo 2.6.0.3-8 | sed 's/\.[^.]*//2g' 2.6 $ echo 2.6.0.3-8 | sed 's/\.[^.]*//3g' 2.6.0 $ echo 2.6.0.3-8 | sed 's/\.[^.]*//1g' 2
[^.] means characters aren't dot.
Comments
Post a Comment