error al concatinar cadena de commands git en python

A continuación: Descubre el creador de la twig de git

Hago un script de Python que me proporciona un set de correos electrónicos orderados del resultado de

git for-each-ref --format='%(authoremail)%09%(refname)' | sort -k5n -k2M -k3n -k4n | grep remotes | awk -F "\t" '{ printf "%-32s %-27s %s\n", $1, $2, $3 }'

para que pueda enviarles un post de correo electrónico indicando que estas son sus twigs en el control remoto, elimínelas.

pero cuando bash juntarlo en python obtengo el error

 intitial = "git for-each-ref --format='%(authoremail)%09%(refname)' | sort -k5n -k2M -k3n -k4n | grep remotes | awk -F " addTab = "\t" printf = '{ printf "%-32s %-27s %s\n", $1, $2, $3 }' gitCommnad = "%s%s %s " % (intitial, addTab, printf) def _exec_git_command(command, verbose=False): """ Function used to get data out of git commads and errors in case of failure. Args: command(string): string of a git command verbose(bool): whether to display every command and its resulting data. Returns: (tuple): string of Data and error if present """ # converts multiple spaces to single space command = re.sub(' +',' ',command) pr = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) msg = pr.stdout.read() err = pr.stderr.read() if err: print err if 'Could not resolve host' in err: return if verbose and msg: print "Executing '%s' %s" % (command, msg) return msg, err print _exec_git_command(gitCommnad) 

El problema es que no está poniendo \t o { printf "%-32s %-27s %s\n", $1, $2, $3 } comillas internas, por lo que awk informa un error de syntax. Deberías usar –

 intitial = "git for-each-ref --format='%(authoremail)%09%(refname)' | sort -k5n -k2M -k3n -k4n | grep remotes | awk -F" addTab = "\t" printf = '{ printf "%-32s %-27s %s\n", $1, $2, $3 }' gitCommnad = "%s \"%s\" '%s' " % (intitial, addTab, printf)