xargs и echo ограничивают количество замен

xargs и echo ограничивают количество замен

Я хочу продублировать текст несколько раз. 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⏎

Подробности моей ОС

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' '

Связанный контент