awk mehrere Befehle und mehrere Argumente

awk mehrere Befehle und mehrere Argumente

Ich versuche diese Ausgabe zu erhalten:

❯ hg branches -T'{node} {branch}\n'
4b0826975cb29da26a6dd13f463241463c43c6a7 maria
5c31751cdb774f8b6337b6f64232b15903530997 default

In diese Befehle:

hg bookmark -r 4b0826975cb29da26a6dd13f463241463c43c6a7 maria -f
hg bookmark -r 5c31751cdb774f8b6337b6f64232b15903530997 default -f

Ich habe es versucht:

hg branches -T'{node} {branch}\n' | awk '{hg bookmark -r $1 $2 -f}'

Aber ich glaube nicht, dass es das bewirkt hat, was ich wollte.

Grundsätzlich möchte ich Leerzeichen verwenden, um die Argumente abzugrenzen, und \n, um die Befehle abzugrenzen. Noch besser wäre es, wenn ich verschiedene Trennzeichen wählen könnte, damit es weniger fehleranfällig ist.

Wie kann ich das machen?

Antwort1

Sie können Ihrer Vorlage die fehlenden Teile hinzufügen:

hg branches -T'hg bookmark -r {node} {branch} -f\n'

Wenn Sie das Ergebnis ausführen möchten, leiten Sie die Ausgabe an die Shell weiter (vorausgesetzt, Ihre Zweignamen enthalten keine einfachen Anführungszeichen):

hg branches -T"hg bookmark -r {node} '{branch}' -f\n" | sh

verwandte Informationen