Hacker News new | past | comments | ask | show | jobs | submit login

1. Thanks for this, instantly added to my dotfiles

2. You nerd-sniped me into getting rid of the unnecessary `cut` process :)

  file=${result%%:*}
  line=${result#*:}
  line=${line%%:*}



Thanks! I have tried using bash substitution to solve it but failed (I just learned the difference between "#" and "##").


FYI, these substitutions are POSIX:

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V...

Also a couple mnemonic hints:

% vs #. On US keyboards, # is shift-3 and is to the left of % which is shift-5. So # matches on the start (left) and % matches on the end (right).

# vs ## (or % vs %%). Doubling the character makes the match greedy. It's twice a wide so it needs to eat more.

Bash also supports ${parameter/pattern/string} and ${parameter//pattern/string} (and a bunch others besides) which are not POSIX:

https://www.gnu.org/software/bash/manual/html_node/Shell-Par...


Thanks for the great information!


Jesus, bash really is an abomination




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

Search: