後方リダイレクトはパイプと同じですか?


11

Linuxでは、次のように入力すると

sort < txtfile

それは同じことです

cat txtfile | sort

回答:


17

タイトルの質問に対して:いいえ。stdinファイルの内容から取得する(入力リダイレクト)ことは、あるプログラムの出力を別のプログラムの入力にパイプすることと同じではありません。

しかし、cat実際にはファイルの内容を印刷するだけなので、その例では結果は実質的に同じです。


ただし、次のものだけでも非常に異なる結果が生成されます。

$ cat * | sort
$ sort < *

一致するファイルが複数ある場合、後者は

-bash: *: ambiguous redirect

前者ほど柔軟ではないため、一致するすべてのファイルをcatし、それらを入力としてにパイプしますsort


3
どうですか... sort *?catの無用な使用、間接の無用な使用、タイプするのが最短、考えるのが最も簡単、そして GNU sortは非常に大きなファイルのスケーラビリティ最適化を扱います(それについてはよく
わかり

1
@seheたぶん。例を使用して、2つが異なることを示しました。これはソートの効率的な使用についてではありません。確かに、それよりも並べ替えの方が柔軟性があります。
ダニエルベック

@DanielBeck、効率に関してはsort < txtfile、より効率的ですcat txtfile | sortか?
Pacerier 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.