2017-05-11 2 views
1

Ich habe mich gefragt, warum ich einen Fatal-Fehler bekomme, während ich mit [] grep mache, und hier nach der Logik suche.Python-Stoff, warum funktioniert Grep nicht mit []

Arbeits:

In [37]: run("""ps aux | grep "grunt" """) 
    [worker2] run: ps aux | grep "grunt" 
    [worker2] out: root  21414 0.0 0.0 16476 5632 pts/0 Ss+ 03:10 0:00 /bin/bash -l -c ps aux | grep "grunt" 
    [worker2] out: root  21475 0.0 0.0 11752 884 pts/0 S+ 03:10 0:00 grep grunt 
    [worker2] out: 

    Out[37]: 'root  21414 0.0 0.0 16476 5632 pts/0 Ss+ 03:10 0:00 /bin/bash -l -c ps aux | grep "grunt" \r\nroot  21475 0.0 0.0 11752 884 pts/0 S+ 03:10 0:00 grep grunt' 

nicht funktioniert:

In [38]: run("""ps aux | grep "[g]runt" """) 
    [worker2] run: ps aux | grep "[g]runt" 

    Fatal error: run() received nonzero return code 1 while executing! 

    Requested: ps aux | grep "[g]runt" 
    Executed: /bin/bash -l -c "ps aux | grep \"[g]runt\" " 

    Aborting. 
    An exception has occurred, use %tb to see the full traceback. 

    SystemExit: run() received nonzero return code 1 while executing! 

Jede Idee, warum die zweite Strophe nicht funktioniert?

+0

Haben Sie einzelne Anführungszeichen ausprobiert? grep '[g] runt' – Robert

+0

Vergessen Sie einzelne Anführungszeichen, sehen Sie einfach meine Antwort. – Robert

Antwort

1

den Ausgang zu vermeiden 1, die Erträge grep, wie diese gestellt:

grep "[g]runt" | tee

Dies ist auf grep wahrsten Sinne des Wortes nicht nichts findet, wenn eckigen Klammern (wenn Grunzen wirklich läuft, sollte es arbeiten, versuchen Sie es)

+0

das löste mein Problem, danke! –