we were trying to find the username of a mercurial url:
default = ssh://[email protected]//srv/hg/repo
Suppose that there's always a username, I came up with:
tmp=${a#*//}
user=${tmp%%@*}
Is there a way to do this in one line?
Assuming your string is in a variable like this:
url='default = ssh://[email protected]//srv/hg/repo'
You can do:
[[ $url =~ //([^@]*)@ ]]
Then your username is here:
echo ${BASH_REMATCH[1]}
This works in Bash versions 3.2 and higher.
You pretty much need more that one statement or to call out to external tools. I think sed is best for this.
sed -r -e 's|.*://(.*)@.*|\1|' <<< "$default"
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