I tried to find the solution here but could not; given strings like
ABC3
DFGSS34
CVBB3
how do I extract the integers so I get
3
34
3
??
In bash command -d is to check if the directory exists or not. For example, I having a directory called. /home/sureshkumar/test/. The directory variable contains: "/home/sureshkumar/test/"
Alternate method: use expr You can also use the expr tool to do the evaluation, but do note that it is not a “native” Bash procedure, as you need to have coreutils installed (by default on Ubuntu) as a separate package. I hope this quick little tutorial helped you in evaluating bash strings as numbers.
For a bash-only solution, you can use parameter patter substition:
pax$ xyz=ABC3 ; echo ${xyz//[A-Z]/}
3
pax$ xyz=DFGSS34 ; echo ${xyz//[A-Z]/}
34
pax$ xyz=CVBB3 ; echo ${xyz//[A-Z]/}
3
It's very similar to sed
solutions but has the advantage of not having to fork another process. That's probably not important for small jobs but I've had situations where this sort of thing was done to many, many lines of a file and the non-forking is a significant speed boost.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With