この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、標準入力やファイルからリストを読み込んでコマンドラインを作成し、実行する「xargs」コマンドです。
「xargs」は、「標準入力やファイルからリストを読み込み、コマンドラインを作成して実行する」というコマンドです。
例えばあるコマンドの出力をパイプでxargsコマンドに送り込み、別のコマンドの引数として指定するといった使い方ができます。
xargs [オプション] コマンド [コマンドの引数]
※[ ]は省略可能な引数を示しています。
短いオプション | 長いオプション | 意味 |
---|---|---|
-a ファイル | --arg-file=ファイル | 標準入力の代わりにファイルから項目を読み込む |
-0 | --null | 入力を空白や改行ではなくNULL文字で区切る |
-d 文字 | --delimiter=文字 | 入力の区切り文字を指定する。\000(8進数)または\x00(16進数)も使用可能 |
-E 終端文字列 | ファイルの終端文字列を指定する ※1 | |
-I 置換文字列 | xargs実行時に指定したコマンドの引数のうち、置換文字部分を標準入力から読み込んだ名前で置き換える(「-L 1」相当の動作になる。本文参照) ※1 | |
短いオプション | 長いオプション | 意味 |
---|---|---|
-L 行数 | 1回のコマンドラインで使用する入力行数の上限(指定した行数ごとにコマンドを実行することになる。本文参照) ※1 | |
-n 個数 | --max-args=個数 | 1回のコマンドラインで使用する引数の上限 |
-s 文字数 | --max-chars=文字数 | 1回分のコマンドラインの最大文字数 |
-x | --exit | 作成されたコマンドラインの長さが上限を超過していたら終了する(-I、-L使用時は自動で有効になる) |
--show-limits | コマンドラインの長さの上限を表示する(表示して直ちに終了したい場合は「xargs --show-limits -r < /dev/null」のように実行) | |
-P プロセス数 | --max-procs=プロセス数 | 同時に実行するプロセス数の上限を指定する(0を指定すると無制限になる。デフォルトは1) |
-r | --no-run-if-empty | 標準入力が空の場合は指定したコマンドを実行しない(「-r」を指定しなかった場合、入力が空でもコマンドを1回は実行する) |
-t | --verbose | 実行前にコマンドラインを標準エラー出力へ出力する |
-p [文字列] | --interactive[=文字列] | 実行前に文字列とコマンドラインをプロンプトとして表示してユーザーの入力を待つ。文字列を指定しなかった場合はコマンドラインのみをプロンプトとして表示する。なお、いずれの場合も自動的に-tを指定したことになる |
※1 これらのオプションにはほぼ同じ機能を指定する別のオプションがあるものの非推奨となっている。「-E」に対して「-e」と「--eof」、「-I」に対して「-i」と「--replace」、「-L」に対して「-l」と「--max-lines」である。動作の違いはmanコマンドの説明を参照(man xargs)。
Copyright © ITmedia, Inc. All Rights Reserved.