1.11M Members

bash string manipulation

 
0
 

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.

Question Self-Answered as of 1 Year Ago
 
0
 

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

No external command is needed:

string=123456789012
while IFS= read -n3 z; [[ $z ]]
do
  echo "$z"
done <<< "$string"
You
This question has already been solved: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article