Eine Unix-Pipe verbindet Dateideskriptoren zweier Prozesse. Eine Pipe wird mit der in <unistd.h> deklarierten POSIX pipe () -Funktion erstellt. Shells ermöglichen die Erstellung von Rohren zwischen Prozessen mit "|".
Ich habe eine Anwendung, die eine große Datenmenge erzeugt, die ich nicht auf der Festplatte speichern möchte. Die Anwendung gibt hauptsächlich Daten aus, die ich nicht verwenden möchte, aber eine Reihe nützlicher Informationen, die in separate Dateien aufgeteilt werden müssen. Zum Beispiel mit der folgenden Ausgabe: JUNK JUNK JUNK JUNK …
Das folgende Beispiel hat mich überrascht. Es scheint kontraintuitiv zu sein ... abgesehen von der Tatsache, dass ein Whisker mehr Benutzerzeit für die echo | sedCombo hat. Warum verbraucht sysecho so viel Zeit, wenn es alleine läuft, oder sollte sich die Frage stellen, wie sich sedder Stand der Dinge ändert …
Es tut mir leid, wenn dies eine dumme Frage ist, aber ich versuche, so etwas in einer Zeile zu erreichen: $ prog1 | prog2 $ prog1 | prog3 Ich möchte also grundsätzlich prog1 ausführen und die Ausgabe separat an prog2 und prog3 leiten (keine verkettete Pipe). Zuerst habe ich versucht, …
Ich versuche cd, einen von einem anderen Befehl an ihn umgeleiteten Verzeichnisnamen zu akzeptieren. Keine dieser Methoden funktioniert: $ echo $HOME | cd $ echo $HOME | xargs cd Das funktioniert: $ cd $(echo $HOME) Warum funktioniert der erste Befehlssatz nicht, und gibt es andere, die auf diese Weise ebenfalls …
Wenn ich DNS-Anfragen von Clients (auf einem OpenWrt 10.04-Router) tcpdumpen möchte, dann habe ich root@ROUTER:/etc# tcpdump -n -i br-lan dst port 53 2>&1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on br-lan, link-type EN10MB (Ethernet), capture size 96 bytes 22:29:38.989412 IP 192.168.1.200.55919 > 192.168.1.1.53: …
Ich möchte timeeinen Befehl, der aus zwei separaten Befehlen besteht, mit einem Piping-Ausgang zu einem anderen. Betrachten Sie beispielsweise die beiden folgenden Skripte: $ cat foo.sh #!/bin/sh sleep 4 $ cat bar.sh #!/bin/sh sleep 2 Wie kann ich timenun die Zeit foo.sh | bar.shabrufen, die vergangen ist (und ja, ich …
Ich versuche, den effizientesten Weg zu finden, um bestimmte Werte zu durchlaufen, bei denen es sich um eine konsistente Anzahl von Werten handelt, die in einer durch Leerzeichen getrennten Liste von Wörtern voneinander entfernt sind (ich möchte kein Array verwenden). Beispielsweise, list="1 ant bat 5 cat dingo 6 emu fish …
Ich habe eine Testdatei mit dem Namen 'test' erstellt, die Folgendes enthält: xxx yyy zzz Ich habe den Befehl ausgeführt: (sed '/y/ q'; echo aaa; cat) < test und ich bekam: xxx yyy aaa zzz Dann bin ich gelaufen: cat test | (sed '/y/ q'; echo aaa; cat) und bekam: …
Einige Shells bashunterstützen beispielsweise Process Substitution, mit der die Prozessausgabe als Datei dargestellt werden kann: $ diff <(sort file1) <(sort file2) Dieses Konstrukt ist jedoch nicht POSIX und daher nicht portierbar. Wie kann eine POSIX- freundliche Prozesssubstitution erreicht werden (dh eine, die funktioniert /bin/sh) ? Anmerkung: die Frage ist nicht …
Ich habe nachgelesen, wie Pipes im Linux-Kernel implementiert sind, und wollte mein Verständnis überprüfen. Wenn ich falsch liege, wird die Antwort mit der richtigen Erklärung ausgewählt. Linux hat ein VFS namens pipefs, das im Kernel eingehängt ist (nicht im User Space) pipefs hat einen einzelnen Superblock und wird daneben an …
In der Befehlszeile kann ich die Ausgabe eines Befehls mit dem Operator >oder |nach dem Befehl in eine Datei oder einen anderen Befehl umleiten oder umleiten . Ich bin auf eine weniger übliche Situation gestoßen, in der ich die Ausgabe in eine Datei umleiten möchte, aber ich scheine nicht die …
Kann weniger (durch Drücken von F) einer weitergeleiteten Eingabe folgen (ähnlich einer Datei)? Für eine Datei, in die geschrieben wird, der Befehl less <file> folgt der Datei, wenn Sie F drücken. Aber wenn ich einen Befehl habe, den Pipes direkt in weniger ausgeben, so command | less Drücken von F …
Bisher habe ich den folgenden sourceBefehl verwendet : source file_name Aber was ich versuche zu tun, ist Folgendes: echo something | source Welches funktioniert nicht.
Warum erhalte ich $xaus den folgenden Ausschnitten andere Werte ? #!/bin/bash x=1 echo fred > junk ; while read var ; do x=55 ; done < junk echo x=$x # x=55 .. I'd expect this result x=1 cat junk | while read var ; do x=55 ; done echo x=$x …
Ich habe fast alle verfügbaren ähnlichen Fragen ohne Erfolg untersucht. Lassen Sie mich das Problem im Detail beschreiben: Ich führe einige unbeaufsichtigte Skripte aus und diese können Standardausgaben und Standardfehlerzeilen erzeugen. Ich möchte sie in der genauen Reihenfolge erfassen, die von einem Terminalemulator angezeigt wird, und ihnen dann ein Präfix …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.