BASH: grep multi ligne (dotall) et non gourmant (non-greedy)

Avec bash, pour effectuer ce genre de regex avec grep, j'ai trouvé l'astuce suivante:

# cat monfichier.xml | tr -d "\n" | grep -Po "<desc>.*?</desc>"

Dans mon fichier xml, mes balises <desc> sont étalées sur 3 lignes

...
    <desc>
        13.0 km, 0:13
    </desc>
    <desc>
        4.0 km, 0:6
    </desc>
...

du coup, pour les extraire correctement de mon fichier, je suis obligé de faire une recherche avec une regex qui ne tient pas compte des retours à la ligne et qui n'est surtout pas gourmande (non-greedy) afin de ne pas extraire en une seule fois toutes les balises <desc>

Pour le problème des retours à la ligne, j'utilise la commande tr pour les supprimer.

Pour le problème du "non-greedy", j'utilise grep avec l'option -P, afin d'indiquer à grep d'utiliser la regex comme une regex Perl pour pouvoir interpréter correctement l'indicateur "?" qui permet justement d'obtenir le comportement "non-greedy"