どーも!marusukeです!
標準入力からデータを受け取り、そのデータを引数として他のコマンドに渡すコマンドxargs
について説明します!
xargsの使い方
書式は以下のようになります
echo "引数" | xargs コマンド
または
コマンド① | xargs -I {} コマンド② {}
echo
(またはコマンド①
)の標準出力を、|(パイプ)
で次のコマンドの標準入力にしたときに、xargs
でコマンド②
の引数として渡すのが基本的な使い方です
ちなみに{}
は置換文字列です。xargs
では-I
オプションを使うことで、標準入力の各値が{}
に置き換えられます
xagrsコマンドの使用例
例1:ファイル削除
find
コマンドで見つけた特定のファイルを削除する場合、以下のようにxargs
を使ってrm
コマンドに渡すことができます
find /path/to/dir -type f -name "*.log" -print0 | xargs -0 rm
このコマンドは/path/to/dir
以下の.log
ファイルを探し、見つかったファイルを削除します
例2:大量のファイルに対するコマンド実行
grep
を使って特定の文字列を含むファイルを検索し、それらのファイル名をxargs
を使用してls -l
に渡して詳細リストを表示する例です
grep -l "特定の文字列" *.txt | xargs ls -l
この例では、現在のディレクトリ内の.txt
ファイルから特定の文字列を含むものを検索し、見つかったファイルの詳細情報を表示します
xargsコマンドのオプション
-n [数値]
: 一度にコマンドに渡す引数の数を制限します。これにより、コマンドが受け取れる引数の最大数を超える問題を防ぐことができます-I {}
:{}
で指定した部分に入力を置換します。このオプションを使用すると、入力された各項目に対して指定したコマンドを実行することができます-0
または--null
: 入力項目がNULL文字で区切られていることを指定します。ファイル名にスペースや特殊文字が含まれている場合に有効です-p
または--interactive
: 各コマンドを実行する前にユーザーの確認を求めます。安全な操作に役立ちます
以上です!
ここまで読んでいただきありがとうございました!
コメント