コマンドラインを使用しているときに、あるプログラムの出力(たとえば、システム情報や統計を生成するツール)を別のプログラム(テキストフィルタリングやgrep、sed、awkなどのパターン検索ツールなど)の入力として直接渡すことができます。さらなる処理のために)、パイプラインを使用します。
また読む :Linux I / O(入力/出力)リダイレクトの仕組みの基本を学ぶ
コマンドラインを構築するためにパイプラインで使用できる最も重要なコマンドラインユーティリティの2つは次のとおりです。
-
xargs
–標準入力からデータのストリームを読み取り、コマンドラインを生成して実行します。 ティーコード> –標準入力から読み取り、標準出力と1つまたは複数のファイルに同時に書き込みます。リダイレクトコマンドのようなものです。
この簡単な記事では、パイプstrong>を使用して標準入力から複数のコマンドを作成して実行する方法について説明します。 、ティー およびxargs Linuxのコマンド。
パイプstrong>を使用するための最も単純な構文 、Linuxチュートリアルの多くのコマンドですでに見たことがあるかもしれませんが、次のとおりです。ただし、複数のコマンドを使用して、より長いコマンドラインを作成できます。
$ command1 args | command2 args OR # command1 args | command2 args | command3 args ...
以下は、パイプラインを使用してdmesgコマンドの出力をheadコマンドに渡す例です。
$ dmesg | head
xargsを使用してコマンドを実行する方法
この例では、2番目のコマンドがxargsを使用して複数行の出力を1行に変換します。
$ ls -1 *.sh $ ls -1 *.sh | xargs
リスト内の各ファイルの行/単語/文字の数を数えるには、以下のコマンドを使用します。
$ ls *.sh | xargs wc -l #count number of lines in each file $ ls *.sh | xargs wc -w #count number of words in each file $ ls *.sh | xargs wc -c #count number of characters in each file $ ls *.sh | xargs wc #count lines, words and characters in each file
以下のコマンドは、 All
という名前のディレクトリを検索して再帰的に削除します。 現在のディレクトリにあります。
$ find . -name "All" -type d -print0 | xargs -0 /bin/rm -rf "{}"
オプション-print0
を指定したfindコマンド アクションを使用すると、標準出力に完全なディレクトリパスを出力し、その後にヌル文字と -0 xargs
を出力できます。 フラグはファイル名のスペースを扱います。
他の実用的なxargsコマンドを見つけることができます これらの記事の使用例:
- Linuxでファイルを複数のディレクトリにコピーする方法
- Linuxではすべてのファイルとディレクトリ名を小文字に変更
- PNGをJPGに、またはその逆にバッチ変換する4つの方法
- ディレクトリ内のすべてのファイルを削除する3つの方法(拡張子が1つまたは少数のファイルを除く)
Linuxでコマンドを使用してTeeを使用する方法
この例は、コマンド出力を標準出力に送信してファイルに保存する方法を示しています。以下のコマンドを使用すると、Linuxで最も高いメモリとCPU使用率で実行中のプロセスを表示できます。
$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt $ cat topprocs.txt
既存のファイルにデータを追加するには、 -a
を渡します フラグ。
$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt
詳細については、ティーをご覧ください。 およびxargs マニュアルページ。
$ man xargs $ man tee
それで全部です!特別記事A– Z Linuxコマンド–概要と例を確認することを忘れないでください。
この記事では、パイプラインを使用してコマンドラインを生成する方法について説明しました。 xargsおよびteeコマンド。以下のフィードバックフォームから、質問したり、考えを共有したりできます。