lsをgrepにパイピング("project"行)

lsをgrepにパイピング(

次のコマンドを検討してください。

ls
dir1 dir2 file1
x1   x2   y2

この出力がgrepなどにパイプされると、各ファイル/ディレクトリは「アイテム」として扱われます。

ls | grep f
file1

ls明らかに、aによって生成された実際の出力とgrepによって処理された入力の間に違いがあります。

ls | grep fgrepは行で機能するため、最初の行全体が表示されると予想できます。dir1 dir2 file1

私がここで何を見逃しているのでしょうか?この動作のメカニズムは何ですか?

ベストアンサー1

コマンドは、出力がTTYに送信されるタイミングを検出できます。したがって、この特別な場合、ls出力がTTYに送信されないことを検出すると、それはパラメータとして渡されたかの-1ように動作します。

grep以下を使用して特別なことをしないことがわかりますcat

ls | cat

おすすめ記事