1. ホーム
  2. xargs

[解決済み】xargsで入力1行ごとにコマンドを実行するようにする

2022-03-24 17:05:42

質問

xargsがコマンドを一行ごとに正確に実行するようにするにはどうしたらいいですか? デフォルトの動作は、行をチャンクしてコマンドを一回実行し、各インスタンスに複数の行を渡します。

<ブロッククオート

から http://en.wikipedia.org/wiki/Xargs :

find /path -type f -print0 | xargs -0 rm

この例では、findはxargsの入力に長いファイル名のリストを与え、xargsはこのリストをサブリストに分割し、各サブリストに対して一度だけrmを呼び出します。これは、この機能的に等価なバージョンよりも効率的です。

find /path -type f -exec rm '{}';

find に "exec" フラグがあることは知っています。 私はただ、他のリソースから例示を引用しているだけです。

どのように解決するのですか?

以下は、入力にスペースがない場合のみ動作します。

xargs -L 1
xargs --max-lines=1 # synonym for the -L option

をマニュアルページより引用しています。

-L max-lines
          Use at most max-lines nonblank input lines per command line.
          Trailing blanks cause an input line to be logically continued  on
          the next input line.  Implies -x.