Unix - フィルタコマンド

Unix - フィルタコマンド

Unixで利用可能な「フィルタコマンド」について知りたいです。私はこれについて混乱しています:

  1. 「フィルタコマンド」の目的は何ですか?
  2. Unixではどのフィルタリングコマンドを使用できますか?

私はオンラインでいくつかの本/記事を読んで、いくつかの本ではフィルタコマンドを見つけ、いくつかの本では別のコマンドを見つけました。

答え1

文脈がないので、質問した内容が何なのかよくわかりません。 「従来の」Unixツールは標準入力から読み取って標準出力に書き込むので、パイプ(つまり|コマンド)を使用して一緒に接続できます。

 ls | grep "banana" | more

標準入力から読み出し、標準出力に書き込むのはフィルタです。

以下は記事です。http://en.wikipedia.org/wiki/Filter_(Unix)

答え2

実際、フィルタコマンドはUNIXのほとんどすべてのコマンドラインプログラムです。

STDIN読み書きできるプログラムはすべてSTDOUTフィルタとして使用できます。

しかし例外があります。 1つの例外は、出力時にアーカイブを生成するcpioためにファイルのリストを取得することです。STDIN

読み取れないように見えるいくつかのコマンドがありますが、これらのコマンドが読み取りまたは書き込みのためのファイル引数としてSTDIN使用されることを確認する必要があります。たとえば、次のようになります。-STDINSTDOUTcat

$ cat f - g

fの内容を印刷してから、標準入力、gの内容を印刷します。

ただし、プログラムでこれを使用しなくても、次のことができます。まだプログラムがフィルタとして機能するように強制するのが一般的です。

たとえばwget、プログラムを次に出力したいとしますSTDOUT

$ wget -O /dev/stdout http://stackoverflow.com/ | less

つまり:/dev/stdin、および/dev/stdout/dev/stderrファイルとして使用して、プログラムに標準IO記述子を読み書きすることができます。

もう1つの注意:パイプはランダムに長くなる可能性があるため、あるプログラムから別のプログラムにパイプしてデフォルトで長いフィルタリストを作成できます。

$ cat file | xz | ccrypt &>/dev/null

関連情報