Substring extraction in bash
- 27 Jul 2017: Post was created (diff)
To extract substrings from variables in bash, we can use the following syntax
${variable_name:offset:length}
Caveats:
- If offset or length is negative, count from the end
- Negative values must be separated by a space away from the colon (
:
) to avoid being interpreted by bash as default value substitution. (See below for examples)
Get the file extension of a filename
$ filename=foobar.txt
$ echo ${filename: -4}
.txt
Get the file name without extension
$ filename=foobar.txt
$ echo ${filename:0: -4}
foobar
References
man bash
If you have any comments or feedback, please send me an e-mail. (stig at stigok dotcom).
Did you find any typos, incorrect information, or have something to add? Then please propose a change to this post.