How can I convert a string containing glob characters such as
/var/lib/gems/*/bin
into a colon-separated string of filenames (i.e. PATH compatible) matching the pattern?
i.e. echo /var/lib/gems/*/bin
will return
/var/lib/gems/1.8/bin /var/lib/gems/1.9.1/bin
I want
/var/lib/gems/1.8/bin:/var/lib/gems/1.9.1/bin
instead.
The obvious approach is simply to replace the space character with ':' via tr
, but that doesn't work if the filename itself contains the space character.
Actually, I thought of a better solution: use a shell function.
function join() { local IFS=$1 shift echo "$*" } mystring=$(join ':' /var/lib/gems/*/bin)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With