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.