パイプは、Linux やその他の Unix 系オペレーティング システムで、あるコマンド/プログラム/プロセスの出力を別のコマンド/プログラム/プロセスに送信してさらに処理するために使用されるリダイレクト (標準出力を他の宛先に転送) の形式です。 。 Unix/Linux システムでは、コマンドの stdout を別のコマンドの stdin に接続できます。パイプ文字を使用してこれを行うことができます '|' 。
パイプは 2 つ以上のコマンドを結合するために使用されます。この場合、1 つのコマンドの出力は別のコマンドへの入力として機能し、このコマンドの出力は次のコマンドへの入力として機能することもあります。 2 つ以上のコマンド/プログラム/プロセス間の一時的な接続として視覚化することもできます。さらなる処理を行うコマンド ライン プログラムはフィルターと呼ばれます。
コマンド/プログラム/プロセス間のこの直接接続により、それらが同時に動作し、一時テキスト ファイルやディスプレイ画面を介してデータを渡すのではなく、それらの間で継続的にデータを転送できるようになります。
パイプは一方向です。つまり、 データはパイプラインを左から右に流れます。
構文:
command_1 | command_2 | command_3 | .... | command_N>
Unix または Linux でのパイピングの例
1. すべてのファイルとディレクトリをリストし、Linux でパイプを使用して「grep」コマンドへの入力として指定します。
ls | grep file.txt>
ls | grep ファイル.txt
この最初の例では、`ls` を使用して現在のディレクトリ内のすべてのファイルとディレクトリをリストし、次にその出力を `grep` コマンドに渡し、ファイル名 `file.txt` を検索します。 ls コマンドの出力は grep コマンドの入力に送信され、その結果は検索語に一致するファイルのリストになります。
java system.out.println
2. すべてのファイルとディレクトリをリストし、Linux のパイプを使用して「more」コマンドへの入力として与えます。
$ ls -l | more>
$ ls -l |もっと
more コマンドは、$ ls -l の出力を入力として受け取ります。このコマンドの最終的な効果は、ls -l の出力が一度に 1 画面ずつ表示されることです。このパイプは、ls -l の出力を受け取り、それを入力として more に与えるコンテナとして機能します。このコマンドは、パイプがメイン メモリに実装されているため、ls -l の標準出力を more の標準入力に接続するためにディスクを使用しません。
I/O リダイレクト演算子の観点からは、上記のコマンドは次のコマンド シーケンスと同等です。
$ ls -l ->temp more -> temp (または more temp) [temp の内容] rm temp>>'温度ls -l -> 温度
上記 2 つのコマンドの出力は同じです。
3. Linux でパイプを使用してファイルのリストをサイズ順に並べ替える
$ sort record.txt | uniq>
これにより、指定されたファイルが並べ替えられ、一意の値のみが出力されます。
レコードの並べ替え.txt |ユニークな
5. ファイル内の特定の範囲の行を印刷するには、先頭と末尾を使用します。
$ cat sample2.txt | head -7 | tail -5>
このコマンドは、(head -7) コマンドによって最初の 7 行を選択し、それが (tail -5) コマンドに入力され、最終的にそれらの 7 行から最後の 5 行が印刷されます。
猫サンプル2.txt |ヘッド-7 |尻尾-5
6. ls と find を使用して、一致するファイル内の特定のパターンに一致するすべての行をリストし、出力します。
$ ls -l | find ./ -type f -name '*.txt' -exec grep 'program' {} ;> このコマンドは、次のファイルを選択します。 。TXT 指定されたディレクトリ内の拡張子を使用して、上記の例のプログラムのようなパターンを検索し、その中にプログラムが含まれるパターンを出力します。
ls -l | find ./ -type f -name *.txt -exec grep プログラム {} ;
7. cat、grep、tee、および wc コマンドを使用して、ユーザーから特定のエントリを読み取り、ファイルに保存し、行数を出力します。
$ cat result.txt | grep 'Rajat Dua' | tee file2.txt | wc -l>
このコマンドは、 ラジャット・ドゥア それらを file2.txt に保存し、一致する行の合計数を出力します。 ラジャット・ドゥア
猫の結果.txt | grep ラジャット・ドゥア |ティーファイル2.txt |トイレ -l
8.Unix または Linux でパイプされたコマンドの出力をファイルにリダイレクトするにはどうすればよいですか?
リダイレクト演算子 `>` を使用して、パイプされたコマンドの出力をリダイレクトできます。
例えば:
ファイル名「file.txt」があり、それをファイル名「geeks.txt」にリダイレクトしたい場合。
ls | grep 'file'>geeks.txt>>オタク.txt
ls | grep ‘ファイル’> geeks.txt
結論
パイピングは、Unix および Linux オペレーティング システムの強力な機能であり、さまざまなコマンドをリンクして、複雑なタスクを迅速かつ効率的に実行するのに役立ちます。この記事では、あるコマンドの出力を別のコマンドの入力にリダイレクトする方法を学びました。全体として、パイピングを使用することで時間を節約し、生産性を向上させ、ディスク領域の使用量を削減できると言えます。