Hello can anyone help me parse this line.
<tr><td>United States of America</td><td>Dollar</td><td>43.309</td></tr><tr><td>Japan</td><td>Yen</td><td>0.5579</td></tr>
the line above did not break.
so i would like to have a result like this
United States of America
Dollar
43.309
Japan
Yen
I would like to parse it by searching the <td> and </td> tags and print the inner value
Thanks.
One way:
echo $line | sed 's/<[./]*t[rd]>/\n/g' | awk 'NF'
string='<tr><td>United States of America</td><td>Dollar</td><td>43.309</td></tr><tr><td>Japan</td><td>Yen</td><td>0.5579</td></tr>'
while :
do
case $string in
\<*) string=${string#*>} ;;
*\<*) printf "%s\n" "${string%%<*}"
string=${string#*>}
;;
*) [ -n "$string" ] && printf "%s\n" "$string"
break ;;
esac
done
Another one:
$ string="<tr><td>United States of America</td><td>Dollar</td><td>43.309</td></tr><tr><td>Japan</td><td>Yen</td><td>0.5579</td></tr>"
$ echo $string|tr -s "<td>" "\n"|grep -w "^td>*"|cut -d ">" -f 0,2
United States of America
Dollar
43.309
Japan
Yen
0.5579