Hallo,
grep weiß ja nicht, welchen Teil des Strings es “only matchen” soll, das kann man nur durch weitere greps in der pipe erreichen, wenn man sich auf grep beschränken will. In sed lässt sich die Auswahl der Zeile (version=“1”) und das Filtern einzelner Wörter innerhalb dieser mit “(”, “)” und “\1” besser kombinieren:
curl -s https://www.openstreetmap.org/api/0.6/relation/7129340/history | sed 's/.*version="1".*user="\(.*\)".*/\1/'
Grüße
Mario