Xargs
xargs
在哪裡添加來自 STDIN 的選項?
由於某些原因,選項順序對命令很重要。例如,不同的選項順序可能會導致不同的動作
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 設置到指定位置?
我不完全確定我是否跟隨你,但如果你問如何控制
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.