
いくつかの理由により、オプションの順序はコマンドにとって重要です。たとえば、オプションの順序が異なると、 での動作が異なる場合があります。では、のオプションをffmpeg
どこから追加するのでしょうか。xargs
stdin
例えば:
$ echo 'output.avi' | xargs ffmpeg -i input.avi -r 24
は以下と完全に同等です:
$ ffmpeg -i inpit.avi -r 24 output.avi
input.avi
しかし、パイプ経由でから にecho
送信したい場合xargs ffmpeg -i -r 24 output.avi
、STDIN からの文字列を指定された位置に設定するにはどうすればよいですか?
答え1
よく理解できていませんが、xargs
引数を渡したときにその引数を配置する場所を制御する方法を尋ねている場合は、スイッチを使用して、-I{}
貼り付け先の入力に使用するマクロを指定しxargs
、渡される内容を展開したい場所でこのマクロを使用することができますxargs
。
注記:私はマクロの表記法を使用して{}
、引数を展開したい場所にそのマクロを配置するだけです。
例
$ echo hi | xargs -I{} echo {}
hi
$ echo hi | xargs -I{} echo {} {}
hi hi
$ echo hi | xargs -I{} echo {} {} bye
hi hi bye
xargs マニュアルページからの抜粋
-I replace-str
Replace occurrences of replace-str in the initial-arguments with
names read from standard input. Also, unquoted blanks do not
terminate input items; instead the separator is the newline
character. Implies -x and -L 1.