xargs y echo número limitado de reemplazos

xargs y echo número limitado de reemplazos

Quiero duplicar un texto varias veces. Xargs no hace más de 5 artículos. No sé si hay una mejor manera de hacer esto.

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

En última instancia, esto debería terminar impreso para crear algunos comandos que necesitan el mismo texto en diferentes lugares.

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⏎   

Después del quinto parámetro, xargs deja de realizar reemplazos.

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⏎ 

Intenté usar las opciones -n y -L pero tampoco funcionaron.

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⏎

Detalles de mi sistema operativo

xargs version
macOS 13.2                                                                                                                   
August 4, 2015                                                                                                                   
macOS 13.2

Respuesta1

No sé lo que estás haciendo, pero xargsprobablemente sea la solución incorrecta.

Una forma sencilla de entrar bashsería

for i in $(seq 1 10) ; do
    echo -n "sometext "
    if [ $i = 10 ] ; then
        echo
    fi
done

O

yes sometext | head -11 | paste -sd' '

O, si realmente te gusta xargs:

echo sometext | xargs yes 2>/dev/null | head -12 | paste -sd' '

información relacionada