Ich habe einen Prozess namens "gao", der "grep" der Prozessanzeige zwei Prozesse einschließlich "awk".was ist die Ausgabe von grep Pipeline
ps aux | awk '/gao/{print}'
wo der Ausgang zwei Zeilen hat, während ich nur einen einschließlich "Gao" nur wollen.
vinllen 1205 100.0 0.0 2432780 652 s005 R+ 12:01PM 0:14.80 ./gao
vinllen 1271 0.0 0.0 2423460 232 s006 R+ 12:01PM 0:00.00 awk /gao/{print}
Also ich möchte "Grep -v awk" in dieses Shell-Skript einfügen. Aber ich weiß nicht, welchen Platz ich machen soll. Nach dem Versuch, diesen Satz nach "ps aux" einzufügen, funktioniert es.
[email protected] ~/code/tmp/2017_07_17$ ps aux | grep -v awk | awk '/gao/{print}'
vinllen 1205 100.0 0.0 2432780 652 s005 R+ 12:01PM 2:39.12 ./gao
Das verwirrte mich sehr, weil in meinem Verständnis, die ersten „ps aux“ Pipeline gibt alle Prozesse, die zweite „ps aux | grep -v awk“ werden die Prozesse mit Ausnahme von „awk alle Ausgaben ", und die zweite Pipeline wird einen Prozess mit" awk "erneut auslösen. Also ich denke, es sollte zwei Prozesse wie folgt sein:
vinllen 1205 100.0 0.0 2432780 652 s005 R+ 12:01PM 0:14.80 ./gao
vinllen 1271 0.0 0.0 2423460 232 s006 R+ 12:01PM 0:00.00 awk /gao/{print}
Könnte mir jemand sagen, warum? Danke vielmals.
Danke, Ed. Wie Sie bereits erwähnt haben, ist es möglich, dass das Ergebnis von 'ps aux' durch' grep -v awk' gefiltert wird und schließlich das Ergebnis von 'awk'. Wenn dies der Fall ist, sollte die Ausgabe zwei Zeilen umfassen. – vinllen
1) ja, und 2) nein.Bitte lesen Sie noch einmal, was ich in meiner Antwort gesagt habe, denn Sie scheinen es falsch verstanden zu haben und ich weiß nicht, wie ich es deutlicher ausdrücken soll. –
Wow, das ist so toll! Es hilft mir, vielen Dank! – vinllen