フィルター(ソフトウェア)
フィルタは、ストリームを処理して別のストリームを生成するコンピュータ プログラムまたはサブルーチンです。 1 つのフィルタを個別に使用することもできますが、多くの場合、フィルタを連結してパイプラインを形成します。
Unixなどの一部のオペレーティング システムには、フィルター プログラムが豊富に用意されています。Windows 7以降にもWindows PowerShellが含まれているため、フィルターが豊富に用意されています。ただし、比較すると、cmd.exe (Windows の元のコマンド ライン インターフェイス) に組み込まれているフィルターはほとんどなく、そのほとんどは、MS-DOSで使用できた同様のフィルター コマンドに比べて大幅に強化されています。OS X には、基礎となる Unix ベースのフィルターが含まれていますが、Automatorも用意されており、フィルター (「アクション」と呼ばれる) を連結してパイプラインを形成できます。
ユニックス
UnixおよびUnix 系オペレーティング システムでは、フィルタは、ほとんどのデータを標準入力(メイン入力ストリーム) から取得し、主な結果を標準出力(メイン出力ストリーム) に書き込むプログラムです。補助入力はコマンド ライン フラグまたは構成ファイルから取得され、補助出力は標準エラーに出力されます。標準入力以外のデバイスまたはファイルからデータを取得するためのコマンド構文は、入力演算子 ( <
) です。同様に、標準出力以外のデバイスまたはファイルにデータを送信するには、出力演算子 ( >
) を使用します。既存の出力ファイルにデータ行を追加するには、追加演算子 ( ) を使用できます。フィルタは、パイプ演算子 (" ") を使用してパイプライン>>
に連結できます。この演算子は、左側のコマンドのメイン出力が右側のコマンドのメイン入力として渡されることを意味します。
|
Unixの哲学では、小さな個別のツールを組み合わせて大きなタスクを達成することが推奨されています。Unix の古典的なフィルタはKen Thompsonのgrepです。Doug McIlroy は、これがオペレーティング システムに「ツールの考え方を決定的に根付かせた」ものであり、その後のツールがそれを模倣したと述べています。[1] grep は最も単純な場合、文字列を含む行を出力します。次に例を示します。
cut -d : -f 1 /etc/passwd | grep foo
これは、 cutコマンドを使用して Unix システムのパスワード ファイルの各行の最初のフィールド (ユーザー名) を取得し、それらすべてを grep の入力として渡すことにより、ユーザー名の一部に" foo "を持つすべての登録済みユーザーを検索します。grep は、入力内で文字列 "foo" を含む行を検索し、それを出力に印刷します。
一般的なUnixフィルタプログラムは、 cat、cut、grep、head、sort、tail、uniqです。awkやsedなどのプログラムは完全にプログラム可能なので、非常に複雑なフィルタを構築するために使用できます。Unixフィルタは、データサイエンティストがファイルベースのデータセットの概要を素早く把握するためにも使用できます。 [2]
Unix フィルタ プログラムの一覧
ドス
DOS ベースのコンピュータの初期の頃からの 2 つの標準フィルターは、findとsortです。
例:
find "キーワード" <入力ファイル名>出力ファイル名 sort "キーワード" <入力ファイル名>出力ファイル名 find /v "キーワード" <入力ファイル名| sort >出力ファイル名
このようなフィルターはバッチ ファイル(*.bat、*.cmd など) で使用できます。
同じコマンド シェル環境で使用できるフィルターは、Windows に組み込まれているものよりもずっと多くあります。これらのフィルターには、フリーウェア、シェアウェア、商用プログラムなどがあります。これらのフィルターの多くは、Unix のフィルターの機能と特徴を模倣しています。一部のフィルタリング プログラムにはグラフィカル ユーザー インターフェイス(GUI) があり、ユーザーは特別なデータ処理やデータ マイニングの要件に合わせてカスタマイズされたフィルターを設計できます。
ウィンドウズ
Windows コマンド プロンプトはMS-DOS コマンドを継承し、いくつかのコマンドを改善し、いくつかのコマンドを追加しました。たとえば、Windows Server 2003には、パイプで連結できるActive Directory を変更するための 6 つのコマンド ライン フィルター(DSAdd、DSGet、DSMod、DSMove、DSRm、DSQuery) があります。[3]
Windows PowerShell は、 などのいくつかの単純なものを除き、パイプを使用して連結できる「コマンドレット」と呼ばれる多数のフィルターを追加しますClear-Screen
。次の例では、フォルダー内のファイルのリストを取得しC:\Windows
、それぞれのサイズを取得して、サイズを昇順で並べ替えます。これは、3 つのフィルター ( Get-ChildItem
、ForEach-Object
、Sort-Object
) がパイプを使用して連結される様子を示しています。
Get-ChildItem C :\ Windows | ForEach -Object { $_ . length } | Sort-Object -Ascending
参考文献
- ^ McIlroy, MD (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (技術レポート). CSTR. Bell Labs. 139.
- ^ Unix シェルによるデータ分析、Wayback Machineに 2016-01-22 にアーカイブ- Bernd Zuther、comSysto GmbH、2013
- ^ Holme, Dan; Thomas, Orin (2004)。Microsoft Windows Server 2003 環境の管理と保守: 試験 70-290。ワシントン州レドモンド: Microsoft Press。pp . 3|17—3| 26。ISBN 9780735614376。
外部リンク
- http://www.webopedia.com/TERM/f/filter.html