For example, I have a string: test1@test2
.
I need to get the test2
part of this string. How can I do this with bash?
Using Parameter Expansion:
str='test1@test2'
echo "${str#*@}"
#
character says Remove the smallest prefix of the expansion matching the pattern.%
character means Remove the smallest suffix of the expansion matching the pattern. (So you can do "${str%@*}"
to get the "test1"
part.)/
character means Remove the smallest and first substring of the expansion matching the following pattern. Bash has it, but it's not POSIX.If you double the pattern character it matches greedily.
##
means Remove the largest prefix of the expansion matching the pattern.%%
means Remove the largest suffix of the expansion matching the pattern.//
means Remove all substrings of the expansion matching the pattern.echo "test1@test2" | awk -F "@" '{print $2}'
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