Start New Discussion within our Software Development Community

echo ${NUM:0:2}

The above is just an example of the kind of code I'M using. I need a way to represent the end of the string. Is there a way to start from the right side of a line of text instead of the left? What I'M trying to do here is grab the last three digits on end, then the next three and so on. NUM in this case will be a user input so there is no way to hard code the end position. Thanks.

I'm not sure this is what you are asking for but I like to answer part of your question.

Is there a way to start from the right side of a line of text instead of the left? What I'M trying to do here is grab the last three digits on end, then the next three and so on

ravikumar@suselinux:~> echo "123456789" |rev |fold -w 3 |rev
789
456
123

No external command is needed:

string=123456789012
while IFS= read -n3 z; [[ $z ]]
do
  echo "$z"
done <<< "$string"
This question has already been answered. Start a new discussion instead.