Wenn Sie also die Ausgabe von lsals Eingabe für zwei verschiedene grepProgramme verwenden möchten, speichern Sie die Ausgabe von jedem grepin verschiedenen Dateien und leiten Sie alle Ergebnisse durch less:
ls -A | tee >(grep ^[.]> hidden-files)>(grep -v ^[.]> normal-files)| less
Die Ergebnisse des ls -Awerden in beide greps "geleitet" . Die Datei enthält hidden-filesden Inhalt der Ausgabe der ersten grepund normal-filesdie Ergebnisse der zweiten grep. Alle Dateien werden im Pager angezeigt less.EDIT : Was Sie in sehen, lessist die gleiche exakte Ausgabe von ls -A, nicht das Ergebnis der greps. Wenn Sie die Ausgabe von ändern möchten , ls -Aum less(zB Austausch der Auftrag so normale Dateien vor versteckten diejenigen aufgeführt sind) , dann versuchen Sie dies:
ls -A | tee >(grep ^[.])>(grep -v ^[.])>/dev/null | less
Ohne würde >/dev/nulldie Ausgabe von greps an die Ausgabe von angehängt, ls -Aanstatt sie zu ersetzen.
Dadurch wird die Ausgabe des Befehls grep sowohl an das Terminal als auch an wc gesendet (dessen Ausgabe wiederum in die Datei grepresult umgeleitet wird).
"Tee" wird im Wikipedia-Artikel tee (Befehl) erklärt . Im Mittelpunkt steht: "Der Befehl tee liest die Standardeingabe, schreibt den Inhalt in die Standardausgabe und kopiert ihn gleichzeitig in die angegebenen Dateien oder Variablen."
Antworten:
Es hört sich so an, als würde der
tee
Befehl tun, was Sie wollen.Der Schlüssel ist zu benutzen
für die Prozesssubstitution . Mit
tee
Verwenden Sie das folgende Muster:Wenn Sie also die Ausgabe von
ls
als Eingabe für zwei verschiedenegrep
Programme verwenden möchten, speichern Sie die Ausgabe von jedemgrep
in verschiedenen Dateien und leiten Sie alle Ergebnisse durchless
:Die Ergebnisse des
ls -A
werden in beidegrep
s "geleitet" . Die Datei enthälthidden-files
den Inhalt der Ausgabe der erstengrep
undnormal-files
die Ergebnisse der zweitengrep
.Alle Dateien werden im Pager angezeigtEDIT : Was Sie in sehen,less
.less
ist die gleiche exakte Ausgabe vonls -A
, nicht das Ergebnis dergrep
s. Wenn Sie die Ausgabe von ändern möchten ,ls -A
umless
(zB Austausch der Auftrag so normale Dateien vor versteckten diejenigen aufgeführt sind) , dann versuchen Sie dies:Ohne würde
>/dev/null
die Ausgabe vongrep
s an die Ausgabe von angehängt,ls -A
anstatt sie zu ersetzen.Quelle
quelle
Verwenden Sie "tee".
Beispiel:
Dadurch wird die Ausgabe des Befehls grep sowohl an das Terminal als auch an wc gesendet (dessen Ausgabe wiederum in die Datei grepresult umgeleitet wird).
"Tee" wird im Wikipedia-Artikel tee (Befehl) erklärt . Im Mittelpunkt steht: "Der Befehl tee liest die Standardeingabe, schreibt den Inhalt in die Standardausgabe und kopiert ihn gleichzeitig in die angegebenen Dateien oder Variablen."
quelle