2017-07-22 5 views
2

Il y a une commande comme suit:Utilisez une commande grep en python

for i in $(objdump -d binary |grep "^ " |cut -f2); do echo -n '\x'$i; done;echo 

Comment puis-je utiliser cette commande dans mon code python, puis de remettre le résultat de la hexdump (impression) à la console.

objdump = "$(objdump -d " + str(_arg_name) + "| grep '^ ' |cut -f2);" + " do echo -n $i; done; echo" 
    result = os.popen(objdump).read() 
    result = result.replace('"','') 
    print(result) 
+3

double possible de [bash commandes en cours d'exécution en python] (https://stackoverflow.com/questions/4256107/running-bash-commands-in -python) –

+0

Ce n'est pas la réponse pour mes commandes. –

Répondre

3

Vous pouvez utiliser le code suivant:

g1 = "grep '^ '" 
    g2 = "cut -f2" 

    objdump = "objdump -d " + str(binary) + "|" + g1 + "|" + g2 
    result = os.popen(objdump).read() 
    result = result.replace('\n','') 
    result = result.replace(' ','') 
    length = len(result) - 1 
    result = [r'\x' + result[i:i + 2] for i in range(0, length, 2)] 
    print(result)