Unix-pipes-filters
Unix/Linux-パイプとフィルター
この章では、Unixのパイプとフィルターについて詳しく説明します。 1つのプログラムからの出力が次のプログラムの入力になるように、2つのコマンドを一緒に接続できます。 この方法で接続された2つ以上のコマンドはパイプを形成します。
パイプを作成するには、2つのコマンド間のコマンドラインに垂直バー(*| *)を配置します。
プログラムが別のプログラムから入力を受け取ると、その入力に対して何らかの操作を実行し、結果を標準出力に書き込みます。 filter と呼ばれます。
grepコマンド
grepコマンドは、特定のパターンを持つ行のファイルを検索します。 構文は-
正規表現は、いくつかのプレーンテキスト(たとえば、単語)またはパターンマッチングに使用される特殊文字のいずれかです。
grepの最も簡単な使用法は、単一の単語で構成されるパターンを探すことです。 特定の文字列を含む入力ファイルの行のみが標準出力に送信されるように、パイプで使用できます。 grepに読み込むファイル名を指定しないと、標準入力が読み込まれます。それはすべてのフィルタープログラムが機能する方法です-
Sr.No. | Option & Description |
---|---|
1 |
-v パターンに一致しないすべての行を印刷します。 |
2 |
-n 一致した行とその行番号を出力します。 |
3 |
-l 一致する行(文字「l」)を持つファイルの名前のみを出力します |
4 |
-c 一致する行の数のみを出力します。 |
5 |
-i 大文字または小文字に一致します。 |
ここで、正規表現を使用して、grepに "キャロル" が付いた行を見つけ、その後に正規表現では "。*"と略されるゼロまたは他の文字が続き、その後に "Aug"が続くようにします。
ここでは、大文字と小文字を区別しない検索を行うために - i オプションを使用しています-
sortコマンド
Sr.No. | Description |
---|---|
1 |
-n 数値順にソートし(例:10は2の後にソートします)、空白とタブを無視します。 |
2 |
-r ソート順を逆にします。 |
3 |
-f 大文字と小文字を一緒にソートします。 |
4 |
PLUSx ソート時に最初の x フィールドを無視します。 |
3つ以上のコマンドをパイプにリンクできます。 grep を使用した以前のパイプの例を使用すると、8月に変更されたファイルをサイズの順序でさらにソートできます。
次のパイプは、コマンド ls 、 grep 、および sort で構成されています-
このパイプは、8月に変更されたディレクトリ内のすべてのファイルをサイズの順にソートし、端末画面に出力します。 並べ替えオプション+ 4nは、4つのフィールドをスキップし(フィールドは空白で区切られます)、行を数値順に並べ替えます。
pgおよびその他のコマンド
通常、長い出力は画面上で圧縮できますが、さらにテキストを実行したり、フィルターとして pg コマンドを使用したりすると、画面がテキストでいっぱいになると、表示が停止します。
長いディレクトリリストがあると仮定しましょう。 ソートされたリストを読みやすくするために、次のように出力を more にパイプします-
画面がファイルサイズの順序でソートされた行で構成されるテキストでいっぱいになると、画面がいっぱいになります。 画面の下部にある more プロンプトでは、コマンドを入力して、ソートされたテキストを移動できます。
この画面での作業が完了したら、moreプログラムの説明にリストされているコマンドのいずれかを使用できます。