Comment faire un alias à partir d'une déclaration avec plusieurs: "et plusieurs: '

2

Comment en faire un alias dans zsh?

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

Je sais que ça devrait être quelque chose du genre:

alias sall = "the command"

Mais comme la ligne se mélange "avec", je ne sais pas comment gérer ça.

Nerian
la source

Réponses:

5

Vous pouvez utiliser "pour votre commande awk.

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

devrait marcher.

Olli
la source
La version des caractères échappés donne une erreur à propos de la non correspondance. Mais la première version fonctionne, si vous lui donnez le pseudonyme sall = 'svn st ...' (pas d'espace)
Nerian
@Nerian: Si vous utilisez des guillemets doubles autour de la commande awk, vous devrez échapper au signe dollar:awk -F " " "{print \$2}"
Dennis Williamson
2
Désolé, Bash en a besoin. Apparemment, zsh ne le fait pas. Après avoir essayé les deux, je vois la différence.
Dennis Williamson
1

Utilisez une fonction.

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

(Étant donné svnque Newline est utilisé comme séparateur de sortie, il n’a aucun sens de le convertir en valeurs nulles et inverses.)

Grawity
la source