Votre sed
chaîne change <News:Image>
en </News:Image>
, ce qui n'est pas ce que vous voulez.
Si nous supposons qu'aucun des textes ne contient <
alors ce qui suit est une substitution simple et directe:
sed -n 's/[^<]*<News:Image>\([^<]*\)<\/News:Image>[^<]*/\1\n/gp' feed2.xml
Ceci trouve n'importe quel texte avant et après la balise souhaitée, puis remplace la chaîne trouvée par ce qui se trouve entre les balises d'ouverture et de fermeture, avec une nouvelle ligne ajoutée.
Dans le cas plus général, par exemple s'il peut y avoir différentes étiquettes sur la même ligne, cela se fait très facilement avec deux sed
appels:
sed -e 's/<News:Image>/\n&/g' -e 's/<\/News:Image>/&\n/g' feed2.xml | \
sed -n 's/[^<]*<News:Image>\(.*\)<\/News:Image>/\1/gp'
La première passe isole les balises sur des lignes séparées en ajoutant de nouvelles lignes avant et après, puis la seconde extrait extrait ce qui se trouve entre les balises d'ouverture et de fermeture.