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.

Member Avatar for b1izzard

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
string=123456789
echo ${string: -3}
789

No external command is needed:

string=123456789012
while IFS= read -n3 z; [[ $z ]]
do
  echo "$z"
done <<< "$string"
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.