Xargs 명령은 Linux에서는 작동하지만 Mac에서는 작동하지 않습니다.

Xargs 명령은 Linux에서는 작동하지만 Mac에서는 작동하지 않습니다.

내 Mac에서 다음 xargs 명령을 실행했습니다.

echo replace | xargs -n 1 -I {} echo "asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf{} asd"

전체 문자열을 인쇄하는 대신 아래와 같이 출력됩니다.

asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf adf

Linux 시스템에서 동일한 작업을 시도했고 예상한 결과를 얻었습니다. Mac에서 이것을 구현하는 방법을 알려주실 수 있나요?

asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdfreplace asd

답변1

xargs(1)매뉴얼 페이지 에서

 -I replstr
         Execute utility for each input line, replacing one or more
         occurrences of replstr in up to replacements (or 5 if no -R
         flag is specified) arguments to utility with the entire
         line of input.  The resulting arguments, after replacement
         is done, will not be allowed to grow beyond 255 bytes;

그런 다음 명령으로 생성된 문자를 계산하면

$ wc -c out
     255 out

그래서 기록 제한에 도달했습니다. 해결책은 이 작업을 수행하거나(도대체 그렇게 긴 논쟁이 필요한 이유가 무엇입니까?) 일부 Linux 버전을 설치 xargs하고 호출하는 것이 아닙니다.

관련 정보