Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Extending your example above, how would you get a result of racing.champion or polish.ostrich ?


    ${name%.*.*}   polish.ostrich
    ${name#*.*.}                  racing.champion


You'd have to do it twice, using a temporary variable:

    $ name="polish.ostrich.racing.champion"
    $ temp="${name#*.}"
    $ echo "${temp#*.}"
    racing.champion
That's if you want it generic (i.e., splitting on "." characters). In one shot, you could make the pattern more specific:

    $ echo "${name#*ostrich.}"
    racing.champion
...or use something like sed or awk:

    $ awk 'BEGIN {FS=OFS="."} {print $(NF-1), $NF}' <<< "${name}"
    racing.champion




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: