Ecco qualcosa che realizza la stessa cosa senza usare un alias. Mettilo in una funzione nel tuo .bashrc:
xx() {
svn status | awk '$1 =="M"{print $2;}'
}
In questo modo non devi preoccuparti di ottenere le virgolette giuste. Usa la stessa identica sintassi che useresti nella riga di comando.
Devi solo eseguirne correttamente l'escape.
alias xxx="svn status | awk '\$1 ==\"M\"{print \$2;}'"
Da Bash 2.04 c'è un terzo modo (più semplice) oltre all'uso di una funzione o all'escape come ha fatto @ffledgling:usare la sintassi letterale stringa (ecco un'ottima risposta).
Quindi, ad esempio, se vuoi creare un alias di questo onliner, finirà per essere:
alias snap-removedisabled=$'snap list --all | awk \'$5~"disabled"{print $1" --revision "$3}\' | xargs -rn3 snap remove'
Quindi devi solo aggiungere il $
davanti alla stringa ed eseguire l'escape delle virgolette singole.
Questo porta un avviso shellcheck che potresti probabilmente disabilitare in sicurezza con # shellcheck disable=SC2139
.