
몇 가지 이유로 인해 옵션 순서가 명령에 중요합니다. 예를 들어 옵션 순서가 다르면 에서 작업이 달라질 수 있으므로 에서 옵션을 추가하는 ffmpeg
위치는 어디입니까 ?xargs
stdin
예를 들어:
$ echo 'output.avi' | xargs ffmpeg -i input.avi -r 24
다음과 완전히 동일합니다.
$ ffmpeg -i inpit.avi -r 24 output.avi
하지만 파이프 input.avi
로 전송하려는 경우 STDIN의 문자열을 지정된 위치로 어떻게 설정합니까?echo
xargs ffmpeg -i -r 24 output.avi
답변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.