
일부 텍스트를 몇 번 복제하고 싶습니다. Xargs는 5개 이상의 항목을 수행하지 않습니다. 이 작업을 수행하는 더 좋은 방법이 있는지 모르겠습니다.
echo "sometext " | xargs -n 9 -t -I RRRR echo RRRR RRRR RRRR RRRR RRRR RRRR RRRR
echo sometext sometext sometext sometext sometext RRRR RRRR
sometext sometext sometext sometext sometext RRRR RRRR
궁극적으로 이것은 다른 위치에 동일한 텍스트가 필요한 일부 명령을 작성하기 위해 인쇄되어야 합니다.
echo "sometext " | xargs -t -I RRRR printf " cmd1 %s cmd2 %s cmd3 %s cmd4 %s cmd5 %s cmd6 %s cmd7 %s" RRRR RRRR RRRR RRRR RRRR RRRR RRRR
printf cmd1 %s cmd2 %s cmd3 %s cmd4 %s cmd5 %s cmd6 %s cmd7 %s sometext sometext sometext sometext sometext RRRR RRRR
cmd1 sometext cmd2 sometext cmd3 sometext cmd4 sometext cmd5 sometext cmd6 RRRR cmd7 RRRR⏎
다섯 번째 매개변수 이후 xargs는 교체 수행을 중지합니다.
echo "sometext " | xargs -n 9000 -t -I RRRR printf " cmd1 %s cmd2 %s cmd3 %s cmd4 %s cmd5 %s cmd6 %s cmd7 %s" RRRR RRRR RRRR RRRR RRRR RRRR RRRR
printf cmd1 %s cmd2 %s cmd3 %s cmd4 %s cmd5 %s cmd6 %s cmd7 %s sometext sometext sometext sometext sometext RRRR RRRR
cmd1 sometext cmd2 sometext cmd3 sometext cmd4 sometext cmd5 sometext cmd6 RRRR cmd7 RRRR⏎
-n 및 -L 옵션을 사용하려고 시도했지만 둘 다 작동하지 않았습니다.
echo "sometext " | xargs -L 1 -t -I RRRR printf " cmd1 %s cmd2 %s cmd3 %s cmd4 %s cmd5 %s cmd6 %s cmd7 %s" RRRR RRRR RRRR RRRR RRRR RRRR RRRR
printf cmd1 %s cmd2 %s cmd3 %s cmd4 %s cmd5 %s cmd6 %s cmd7 %s sometext sometext sometext sometext sometext RRRR RRRR
cmd1 sometext cmd2 sometext cmd3 sometext cmd4 sometext cmd5 sometext cmd6 RRRR cmd7 RRRR⏎
내 OS 세부정보
xargs version
macOS 13.2
August 4, 2015
macOS 13.2
답변1
당신이하고있는 일을 모르지만 xargs
아마도 잘못된 해결책 일 것입니다.
간단한 방법은 다음과 bash
같습니다.
for i in $(seq 1 10) ; do
echo -n "sometext "
if [ $i = 10 ] ; then
echo
fi
done
또는
yes sometext | head -11 | paste -sd' '
또는 정말 마음에 드는 경우 xargs
:
echo sometext | xargs yes 2>/dev/null | head -12 | paste -sd' '