Myślę, że mogę przeoczyć względnie podstawową kwestię dotyczącą powłoki. Dane wyjściowe z polecenia ls domyślnie rozdzielają dane wyjściowe nowymi wierszami, ale powłoka wyświetla dane wyjściowe w jednym wierszu.
Czy ktoś może mi to wytłumaczyć? Zawsze zakładałem, że dane wyjściowe były po prostu oddzielone spacjami, ale teraz, gdy widzę dane wyjściowe oddzielone znakami nowej linii, oczekiwałbym, że dane wyjściowe będą wyświetlane w osobnych wierszach.
Przykład:
cpoweradm@debian:~/lpi103-4$ ls text*
text1 text2 text3
od pokazuje, że dane wyjściowe są oddzielone znakami nowej linii:
cpoweradm@debian:~/lpi103-4$ ls text* | od -c
0000000 t e x t 1 \n t e x t 2 \n t e x t
0000020 3 \n
0000022
Jeśli nowe linie są obecne, to dlaczego dane wyjściowe nie są wyświetlane jako:
text1
text2
text3
ls
. Jest użyteczny, ale wyraźnie niespójny i zaskakujący. Pamiętaj jednak, że niektóre polecenia, które generują kolorowe wydruki, usuwają kolory również podczas pipowania.