内容へ移動
Mako Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
ja:linux:xargs-tips
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== xargs-Tips ====== ===== xargsって ===== UNIX系OSで使う。\\ 標準入力から渡された情報を区切り文字で分割し、オプションとして指定されたコマンドのコマンドライン引数として渡すコマンド。\\ ==== 例 ==== <code> /path/to/sample.txt aaa bbb ccc </code> <code bash> $ cat /path/to/sample.txt | xargs echo aaa bbb ccc </code> ===== 引数の展開場所を任意の場所にするには ===== xargsコマンドをそのまま使うと、xargsの後ろに指定したコマンドの最後のコマンドライン引数としてコマンドに引き渡される。\\ 実行するコマンドの最後尾以外の場所に値を引き渡す場合は、**-I**オプションを使用する。 ==== 例 ==== <code> /path/to/sample.txt test1 test2 test3 </code> <code bash> $ cat /path/to/sample.txt | xargs echo AAA BBB AAA BBB test1 AAA BBB test2 AAA BBB test3 $ cat /path/to/sample.txt | xargs -I echo AAA {} BBB AAA test1 BBB AAA test2 BBB AAA test3 BBB </code> **-I**オプションのデフォルトの展開先指定文字は**{}**を使う。ダブルクォートで括ると無効になるので注意。\\ また、**{}**以外の文字列で指定したい場合は**-I "STR"**のように指定し、xargsの後ろのコマンドに**"STR"**を挿入する。\\ また、xargsのバージョンなのか、Linuxディストリビューションなのか、環境によって**-I**ではなく**-i**の場合もあるので注意する。 ===== 一度に渡す引数の個数を制御するには ===== xargsはそのまま実行すると、とりあえず引数を1つずつ渡す。\\ これを2つ以上ずつ渡す場合は**-n** **'N**'オプションを使用する。\\ ==== 例 ==== <code> /path/to/sample.txt test1 test2 test3 test4 </code> <code bash> $ cat /path/to/sample.txt | xargs -n 2 echo Output = Output = test1 test2 Output = test3 test4 </code> **-n**オプションは**-i**オプションとの併用は出来ない。 ===== 空白文字を含む標準出力を引数としたい場合 ===== findコマンドでファイルリストをxargsに渡す際、空白文字を含むと、異なる引数として分割されてしまう。\\ これを回避する場合、findコマンドの出力する区切りを0(null)にし、それをxargs側の区切り文字として設定する\\ ==== 例 ==== <code bash> $ find . -type f -print0 | xargs -0 command </code>
ja/linux/xargs-tips.txt
· 最終更新: 2015/01/02 14:05 by
makoto
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ