I have the following string in bash with length > 4
str = "abcdefghijklmno"
and I want to extract into str2
the 5 first charachter of str
. So
str2="abcde"
How to do it with bash?
Advertisement
Answer
Do use the expression
{string:position:length}
So in this case:
$ str="abcdefghijklm" $ echo "${str:0:5}" abcde
See other usages:
$ echo "${str:0}" # default: start from the 0th position abcdefghijklm $ echo "${str:1:5}" # start from the 1th and get 5 characters bcdef $ echo "${str:10:1}" # start from 10th just one character k $ echo "${str:5}" # start from 5th until the end fghijklm
Taken from:
– wooledge.org – How can I use parameter expansion? How can I get substrings? How can I get a file without its extension, or get just a file’s extension?
– Shell Command Language – 2.6.2 Parameter Expansion