substring

I have a string '<Hi>abc</Hi>"

How to print "abc"

awk -F"[<>]" '{print $3}'

How to pass the string.
awk -F"[<>]" '{print $3}' '<Hi>abc</Hi>'

echo '<Hi>abc</Hi>' | sed 's/<Hi>\(.*\)<\/Hi>/\1/'

---------- Post updated at 12:29 ---------- Previous update was at 12:28 ----------

echo '<Hi>abc</Hi>' | awk -F"[<>]" '{print $3}'

or

awk -F"[<>]" '{print $3}' file

A perl one:

echo '<Hi>abc</Hi>'|perl -ane '/<(\w+)>(\w+)<(\/\w+)>/;print "Tag:$1\nContent:$2\n"'

More secure:

perl -ane '/<(\w+)>(\w+)<\/\1>/g;print "Tag:$1\nContent:$2\n"'

with shell,

$ var='<Hi>abc</Hi>'
$ tmp=${var#*>}
$ str=${tmp%<*}
$ echo $str
abc
$ 
# echo '<Hi>abc</Hi>' | sed 's/<[^>]*>//g'
abc

regards
ygemici