出力を検討してください。
% { echo one; echo two; echo three; } | xargs -I{} -L1 echo test-{}
test-{} one
test-{} two
test-{} three
{}
代替項目がマニュアルページ(および私のメモリ)に従わないのはなぜですか?
test-one
、、、test-two
行を出力にインポートするには、コマンドラインをどのように変更しますかtest-three
?
答え1
Remove -L 1
; -I
(マンページに記載されているように)に暗示されていますが、後で指定すると無視されます。
答え2
暗黙的に設定されているため、「-L1」なしで動作します。
{ echo one; echo two; echo three; } | xargs -I{} echo test-{}
test-one
test-two
test-three
答え3
GNU並列がある場合http://www.gnu.org/software/parallel/インストール後、次のことができます。
{ echo one; echo two; echo three; } | parallel echo test-{}
次のように簡単にGNU Parallelをインストールできます。
wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem
詳しくは、GNU Parallelの紹介ビデオをご覧ください。 https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1