xargs に入力行ごとにコマンドを 1 回実行させる 質問する

xargs に入力行ごとにコマンドを 1 回実行させる 質問する

xargs に、入力された各行に対してコマンドを 1 回だけ実行させるにはどうすればよいですか? デフォルトの動作では、行をチャンクにしてコマンドを 1 回実行し、各インスタンスに複数の行を渡します。

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

/path -type f -print0 | xargs -0 rm を検索します

この例では、find はファイル名の長いリストを xargs の入力として渡します。次に、xargs はこのリストをサブリストに分割し、サブリストごとに rm を 1 回呼び出します。これは、機能的に同等な次のバージョンよりも効率的です。

/path -type f -exec rm '{}' を検索します \;

find には「exec」フラグがあることは知っています。私は別のリソースから説明的な例を引用しているだけです。

ベストアンサー1

以下は、入力にスペースが含まれていない場合にのみ機能します。

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

manページより:

-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.

おすすめ記事