Вы получили разумный awk-ответ в комментариях, но вместо этого рассмотрите этот подход:
$ awk '{t=$0; sub(/:.*/,"",t); sub(/^[^:]+:[[:space:]]*/,""); f[t]=$0} END{print f["space"]}' file
stage
$ awk '{t=$0; sub(/:.*/,"",t); sub(/^[^:]+:[[:space:]]*/,""); f[t]=$0} END{print f["api version"]}' file
2.112.0
$ awk '{t=$0; sub(/:.*/,"",t); sub(/^[^:]+:[[:space:]]*/,""); f[t]=$0}
END{print f["space"], f["org"], f["api version"]}' file
stage cart-creation 2.112.0
$ awk -v n='space' '{t=$0; sub(/:.*/,"",t); sub(/^[^:]+:[[:space:]]*/,""); f[t]=$0} END{print f[n]}' file
stage
, поскольку он позволяет вам печатать любые значения в любом порядке по их имени.