Search code examples
regexbashsed

Excluding the first 3 characters of a string using regex


Given any string in bash, e.g flaccid, I want to match all characters in the string but the first 3 (in this case I want to exclude "fla" and match only "ccid"). The regex also needs to work in sed.

I have tried positive look behind and the following regex expressions (as well as various other unsuccessful ones):

^.{3}+([a-z,A-Z]+)
sed -r 's/(?<=^....)(.[A-Z]*)/,/g'

Google hasn't been very helpful as it only produce results like "get first 3 characters .."

Thanks in advance!


Solution

  • If you want to get all characters but the first 3 from a string, you can use cut:

    str="flaccid"
    cut -c 4- <<< "$str"
    

    or bash variable subsitution:

    str="flaccid"
    echo "${str:3}"
    

    That will strip the first 3 characters out of your string.