Home [Linux] xargs コマンドと使用例
Post
Cancel

[Linux] xargs コマンドと使用例

xargs コマンドを書いた理由

特定のコマンドの出力を利用して新しいコマンドを一括で実行することができました。 xargs コマンドはデータストリームを読み込んでコマンドラインを生成し、実行する機能を持っています。 つまり、特定のコマンドの出力を新しいコマンドの引数として使用することができます。

使用事例

特定のファイル拡張子を持つすべてのファイルを削除する

もし、.sh拡張子を持つ全てのファイルを削除したい時、下記のようにxargsコマンドを使って削除することができます。 もちろん、rmコマンドにパターンを与えても同じ機能ですが、ここでは他のコマンドと組み合わせて使うことができることを見せるために使ってみました。

1
$ ls | grep "\.sh$" | xargs rm

上記のコマンドは ls 出力で .sh 拡張子を検索し、xargs で rm の後にその出力を入力することで動作します。

特定のコマンドの出力を活用して新しいコマンドを生成する。

もし、特定のテキストの出力を切り取って新しいコマンドを作りたい場合は、xargsを使って作ることができます。

1
2
3
4
$ cat test.txt
1 kevin
2 william
3 mickey

もしtest.txtに上のような情報があって、数字の後ろの名前情報だけ取って下記のコマンドを実行したいとします。

1
$ deleteuser -u USERNAME -f

この時、下記のように xargs を使って該当コマンドを実行することができます。

1
cat test.sh | awk '{ print $2 }' | xargs -I{} deleteuser -u {} -f

ここで xargs は -I オプションを使用しました。このオプションは、前のコマンドで実行した結果を{}に入れるというものです。に入れるということです。 つまり、deleteuser -u {} にユーザー名を入れるということです。

上記のコマンドを実行すると deleteuser -u kevin -f deleteuser -u william -f deleteuser -u mickey -f を順番に実行したのと同じ効果があります。

This post is licensed under CC BY 4.0 by the author.

Haproxy

[Linux] tmux インストールと使い方とコマンドまとめ