- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- シェルスクリプト/xargsコマンド へ行く。
- 1 (2017-07-07 (金) 16:42:07)
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
のようなことが可能になる。