Ich möchte eine sortierte Liste aller in der Datei gefundenen TCP-Dienste erstellen /etc/services
, die Ausgabe des Befehls grep tcp /etc/services
in den Befehl weiterleiten sort
und dann die Ausgabe dieser Pipe in die Datei umleiten ~/pipelab.txt
.
Ich erhalte ständig die Fehlermeldung, dass meine Ausgabe falsch ist, und ich weiß nicht, warum.
Das habe ich zuletzt versucht:
grep tcp /etc/services > ~/pipelab.txt | sort
Antwort1
grep
Sie versuchen, die Ausgabe in eine Datei umzuleitenUndLeiten Sie es weiter an sort
. Das können Sie nicht tun, zumindest nicht auf diese Weise.
Stattdessen möchten Sie es wirklich nur zum Sortieren füttern:
grep tcp /etc/services | sort
und dann möchten Sie diesortiertdie Ausgabe (also das, was aus dem Sortiervorgang herauskommt) in eine Datei, sodass Sie die Umleitung nach dem Sortieren einfügen:
grep tcp /etc/services | sort > ~/pipelab.txt
Sowohl Pipes als auch Umleitungen funktionieren, indem sie ändern, wohin die Ausgabe des Befehls geht. Sie hatten zwei davon, die um die Ausgabe stritten grep
(und letztendlich gewann die Umleitung und schrieb die unsortierte Ausgabe in Ihre Datei).
Antwort2
> ~/pipelab.txt
gehört offensichtlich zum Befehl auf derselben Seite wie der Pipeline-Operator |
. D. h. Sie leiten die grep
Ausgabe in die Datei um, anstatt sie weiterzuleiten an sort
:
grep tcp /etc/services | sort > ~/pipelab.txt