What's the most simple way to extract substring on Unix shell (with regex)?
Simple means:
- less feature
- less options
- less study
|
|
Shell Builtins are good for this too, here is a sample script:
That outputs:
And as per Gnudif above, there are always sed/awk/perl for when the going gets really tough. |
|||
|
|
Unix shells do not traditionally have regex support built-in. Bash and Zsh both do, so if you use the You can get the substrings from the In Zsh, if the So, most simply: if you're using bash:
If you're not using Bash or Zsh, it gets more complicated as you need to use external commands. |
|||
|
|
|
grep and sed are probably the tools you want, depending on the structure of text. sed should do the trick, if you do not know what the substring is, but know some pattern that is around it. for example, if you want to find a substring of digits that starts with a "#" sign, you could write something like: sed 's/^.*#([0-9]+)/\1/g' yourfile grep could do something similar, but the question is what you need to do with the substring and whether we are talking normal line-end delimited text or not. |
|||
|
|