이 xargs 명령에 어떤 문제가 있습니까?

이 xargs 명령에 어떤 문제가 있습니까?

출력을 고려하십시오.

% { 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

관련 정보