Am 11.05.2015 um 13:52 schrieb Jason A. Donenfeld:
> Can we figure out a way to do this without needing to differentiate between 
> GNU sed and BSD sed?


phew. maybe. but all solutions are quite ugly. I'll just quote myself from back 
then on the mailing list ;)

---

GNU sed allows use of the switch -E since version 4.2 with the code comment
 /* Undocumented, for compatibility with BSD sed.  */
(it's not even mentioned in the Changelog)

As this version has been around since April 2009, most distributions
should have picked up on this.

So [...] what should the course of
action be?

* go with the -E option for both versions of sed
* distinguish GNU sed from BSD sed and apply -r or -E accordingly
* replace the current sed comand with two sed commands, something like
tree -C -l --noreport "$PREFIX/$path" | tail -n +2 \
| sed 's/\.gpg\(\x1B\[[0-9]\+m\)\{0,1\} ->/\1/' \
| sed 's/\.gpg\(\x1B\[[0-9]\+m\)\{0,1\}$/\1/'


While the first option would make the most readable regex and require
only one call to sed, the last option should be the most hassle-free and
compatible, but with the most ugly regex (especially having to use
'\{0,1\}' instead of '?' sickens me).

---

an additional comment came up since then: sed for BSD officially allows for 
'-r' in newer versons - but that option has never made it's way to OSX, so I 
guess we can't go that way
_______________________________________________
Password-Store mailing list
[email protected]
http://lists.zx2c4.com/mailman/listinfo/password-store

Reply via email to