print string between two characters or strings
From thelinuxwiki
Howto print text between tags or characters with awk or sed
print the text between two tags/characters/strings.
$ echo "bla(foo)"|awk -F'[(|)]' '{print $2}' foo $ echo "bla=@@foo@@"|awk -F'[@@|@@]' '{print $3}' foo
with sed:
$ echo "blah(foo)"|sed -n 's/.*(\([^ ]*\))/\1/p' foo echo "aaafoobbb"|sed -n 's/.*aaa\([^ ]*\)bbb/\1/p' foo