Mit

o5mfilter germany.o5m --keep="all waterway=river name=Donau" >donau.osm

kriegst du schon mal die notwendigen Daten. Aber das ist dann nur so etwas wie eine grobe Mittellinie des Flusses, ohne Uferlinien.
Mit den Brücken kannst du ähnlich verfahren. Wenn es nur die Donaubrücken sein sollen, müsstest du dir vielleicht ein längliches Polygon von Hand erstellen und damit dann filtern…