フィルタ (ソフトウェア)フィルタ(英: filter)は、データストリームを処理するコンピュータプログラムである。 概要UNIXなどのオペレーティングシステムでは、各種フィルタプログラムが備わっている。Windowsでもシェルに組み込みの簡単なフィルタがあり、それらはMS-DOSに存在したフィルタコマンド群の改良版である。 DOSの例UNIXなどと同様、フィルタは一般に標準入力からデータを取り出し、標準出力に主な結果を書き出す。何らかのデバイスやファイルからデータを取り出すには、入力オペレータ ("<") を使う。同様に、出力を何らかのファイルやデバイスに行うには、出力オペレータ (">") を使う。既存のファイルに出力を追加する形で行うには、アペンドオペレータ (">>") を使う。 フィルタはパイプの要素として使われる。パイプオペレータ ("|") を使ってコマンドを繋ぐことで、左側のコマンドの標準出力が右側のコマンドの標準入力に接続される。初期のDOSでの処理では、findとsortというフィルタプログラムが使われることが多かった。 例:
このようなフィルタがバッチファイル(*.bat、*.cmd など)で使われる。 Windowsの例Windowsでは、さらに様々なフィルタがある。一部はフリーウェアやシェアウェアであり、商用プログラムも存在する。これらの多くはUNIXのフィルタの機能を真似たものである。一部のフィルタプログラムはグラフィカルユーザインタフェース (GUI) を持ち、特定のデータ処理やデータマイニングのためにカスタマイズされたフィルタをユーザーが設計できるようになっている。 UNIXの例古典的なフィルタとしてgrepがある。これは指定された文字列を含むテキスト行を単純な形式で出力するコマンドである。次のような使用例がある: cut -d : -f 1 /etc/passwd | grep foo この例では、cutコマンドで passwdファイルの第一フィールド(ユーザー名)を取り出し、それをgrepコマンドに渡す。grepコマンドはユーザー名に "foo" という文字列が含まれるものだけを出力する。つまり、全体として"foo"という文字列がユーザー名に含まれる全ユーザー名をリストアップしていることになる。 sedで同じことをする例を次に示す。 sed -e 's/\([^:]*\):.*/\1/' /etc/passwd | grep foo AWKで同じことをする例を次に示す。 awk -F: '{print $1}' /etc/passwd | grep foo Perlで同じことをする例を次に示す。 perl -ne '@F = split(/:/); print shift(@F), "\n";' /etc/passwd | grep foo UNIXの主なフィルタプログラムUNIXの主なフィルタプログラムを以下に列挙する。なお、PerlやAWKやsedは高機能フィルタとしても使えるプログラミング言語である。 その他ひよこフィルターブラウザ上に表示される苦手な文言を「ぴよぴよ+ひよこの絵文字」に変換するフィルターであり、ブラウザで動作する拡張機能。 神奈川県横浜市にあるアプリ開発ベンチャー企業の「bondavi」が2022年8月25日より無償公開している[1][2]。 脚注注釈 出典
|