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

Hang out in #bash on IRC Freenode and you will be a Bash jedi http://mywiki.wooledge.org/BashFAQ best resource IMO for quick Bash syntax lookups as I always need to refer to the BashFaq to remember parameter expansion sub-string retrieval.

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


They are needlessly rude and mean at #bash. A bunch of scumbags, actually.


I think it's a result of constantly dealing with people who ask for help, receive good advice, and then ignore it


If that annoys then, they can always quit. Being rude in this situation is either a choice or lack of ability to cope with stress. Neither excuses being rude...


Complete opposite of my experience.


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: