Cómo hacer un alias a partir de una declaración con muchos: "y muchos: '

2

¿Cómo hacer de esto un alias en zsh?

svn status | grep "^?" | awk -F "      " '{print $2}' | tr "\n" "\0" | xargs -0 svn add

Sé que debería ser algo similar:

alias sall = "the command"

Pero a medida que la línea se mezcla "con 'No sé cómo manejar eso.

Nerian
fuente

Respuestas:

5

Puede usar "para su comando awk.

alias sall='svn status | grep "^?" | awk -F " " "{print $2}" | tr "\n" "\0" | xargs -0 svn add'

Deberia trabajar.

Olli
fuente
La versión de caracteres escapados da un error sobre un 'no coincide. Pero la primera versión funciona, si lo haces alias sall = 'svn st ...' (sin espacios en blanco)
Nerian
@Nerian: si usa comillas dobles alrededor del comando awk, deberá escapar del signo de dólar:awk -F " " "{print \$2}"
Dennis Williamson
2
Lo siento, Bash lo necesita. Aparentemente, zsh no. Después de probar ambos, veo la diferencia.
Dennis Williamson
1

Usa una función.

sall() {
    svn status | sed -rn 's/^\? {7}//p' | xargs -d '\n' svn add
}

(Dado que svnutiliza la nueva línea como separador de salida, no tiene sentido convertirlo en nulo y viceversa).

Gravedad
fuente