ist folgendes zu beachten ..., wenn ich ohne Flags ‚ls‘ ausführen, ist es, die Ergebnisse in einer einzigen Zeile zurückgibt, wie folgt aus:ändert Pipe Operator seine Eingabe/Ausgabe? Oder ist mir Rohr bewusst?
[email protected] /cygdrive/c/test/
$ ls
folder1/ folder2/ folder3/
jetzt, wenn ich die Ergebnisse für etwas grep wollen, sag '2', bekomme ich folgendes:
[email protected] /cygdrive/c/test/
$ ls | grep 2
folder2/
Sollte es nicht die gesamte Linie zurückgeben? Ich würde erwarten, dieses Ergebnis habe ich ls -l | grep 2
verwendet.
Es scheint mir, dass entweder der Pipe-Operator die Eingabe in grep in irgendeiner Weise ändert oder dass ls irgendwie die Pipe erkennt und ihre eigene Ausgabe ändert.
ist eine einzelne Zeichenfolge, nicht wahr? also wie dann grep wissen, nur folder2/
, und nicht folder1/ folder2/ folder3/
zurückgeben?
Ich habe mich schon lange darüber gewundert. Es scheint, dass ls sich bewusst ist, dass seine Ausgabe zu einer Pipe geht, und formatiert so jedes Ergebnis als separate Zeile. Wenn das Terminal ausgegeben wird, wird es kompakter formatiert. Ich weiß nicht, ob das "offizielle" Verhalten oder nur eine Konvention ist. –