xargsを使用する利点

xargsを使用する利点

xargsなしでfindコマンドを実行するとしましょう。

find . -iname 'connect*' > cat output.txt

質問1. xargsコマンドを使用してfindコマンドの出力をテキストファイルにコピーするにはどうすればよいですか? 2.コマンドを使用することの利点は何xargsですか?>

次のいずれかを試しましたが、正しいようではありません。

find . -iname 'connect*'  | xargs -t cat > output.txt

答え1

xargs標準入力とコマンドラインから文字列を取得します。 stdinの文字列をコマンドラインの引数として使用してコマンドラインを実行します。基本的に間接参照を行っています。ファイル名のリスト(たとえば、作成済み)がある場合は、複数のテキストファイルから上位20の単語頻度リストを取得するのと同じようにfind使用できます。xargs

find . -name '*.txt' | xargs cat | tr -s '[:blank:]' '\n' | sort | uniq -c | sort -k1.1nr | head -20

質問1のタスクを実行する価値があるかどうかはわかりません。私はそれができると確信していますが、なぜ面倒なのですか?これが質問2に対する答えです。パフォーマンスや意図の明確さの点で利点はありません。

一般的に使用の利点は、xargs標準入力に入れるファイル名を決定する複雑な操作を実行できることです。find作成時間や複数の名前などを追加できます。ファイル名の静的リストのみを使用すると、得られる利点が無効になります。xargsループで実行するcatコマンドを使用または実行する方が良いです。xargs

答え2

xargsは出力ラインでコマンドを実行するのに役立ちます。たとえば、次のようになります。

find . -name '*.mp3' | xargs mp3info

findで見つかったファイルごとに(出力行など)

mp3info <filename>

処刑される

使いたいならみんなfind出力の場合、xargsはまったく必要ありません。

関連情報