どーも!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: 各コマンドを実行する前にユーザーの確認を求めます。安全な操作に役立ちます
以上です!
ここまで読んでいただきありがとうございました!




コメント