awk múltiples comandos y múltiples argumentos

awk múltiples comandos y múltiples argumentos

Estoy intentando convertir esta salida:

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

En estos comandos:

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

Lo intenté:

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

Pero no creo que haya hecho lo que quería.

Básicamente quiero usar espacio para delimitar los argumentos y \n para delimitar los comandos. Mejor aún si puedo elegir diferentes separadores para que sea menos propenso a errores.

¿Cómo puedo hacer esto?

Respuesta1

Puedes agregar las piezas que faltan a tu plantilla:

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

Si desea ejecutar el resultado, canalice la salida al shell (suponiendo que los nombres de sus ramas no contengan comillas simples):

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

información relacionada