編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

xargsコマンド

xargs 引数なし(デリミタはデフォルトでスペース・タブ・改行)

$ echo "/etc/passwd
/etc/hosts
/etc/resolv.conf" | xargs wc -l

 28 /etc/passwd
  1 /etc/hosts
  3 /etc/resolv.conf
 32 合計
$ echo "/etc/passwd /etc/hosts /etc/resolv.conf" | xargs wc -l

 28 /etc/passwd
  1 /etc/hosts
  3 /etc/resolv.conf
 32 合計

xargs -d デリミタ指定

# デリミタにスペースを指定
$ echo -n "/etc/passwd /etc/hosts /etc/resolv.conf" | xargs -d " " wc -l

 28 /etc/passwd
  1 /etc/hosts
  3 /etc/resolv.conf
 32 合計
# デリミタに改行を指定
$ echo "/etc/passwd
/etc/hosts
/etc/resolv.conf" | xargs -d "\n" wc -l

 28 /etc/passwd
  1 /etc/hosts
  3 /etc/resolv.conf
 32 合計

xargs -I {} 引数を展開

$ echo -n /etc/passwd /etc/hosts /etc/resolv.conf | xargs -d " " -I {} wc -l {}

 28 /etc/passwd
 1 /etc/hosts
 3 /etc/resolv.conf

オプション-Iを付けない場合は、

wc -l /etc/passwd /etc/hosts /etc/resolv.conf

が実行されるのに対し、-Iを付けると

wc -l /etc/passwd
wc -l /etc/hosts
wc -l /etc/resolv.conf

のように3回wcコマンドが実行される。{}で引数を展開できるので、

$ ls *.txt
1.txt  2.txt  3.txt

$ ls -1 *.txt | xargs -I {} cp {} {}.backup

$ ls *
1.txt  1.txt.backup  2.txt  2.txt.backup  3.txt  3.txt.backup

のようなことが可能になる。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2017-07-07 (金) 16:43:37 (193d)