
Ich möchte einen Text mehrmals duplizieren. Xargs kann nicht mehr als 5 Elemente duplizieren. Ich weiß nicht, ob es dafür eine bessere Möglichkeit gibt.
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
Dies sollte letztendlich im Druck enden, um einige Befehle zu erstellen, die den gleichen Text an verschiedenen Stellen benötigen.
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⏎
Nach dem fünften Parameter beendet xargs die Ersetzungen.
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⏎
Ich habe versucht, die Optionen -n und -L zu verwenden, aber sie haben auch nicht funktioniert.
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⏎
Meine Betriebssystemdetails
xargs version
macOS 13.2
August 4, 2015
macOS 13.2
Antwort1
Ich weiß nicht, was Sie tun, aber xargs
es ist wahrscheinlich die falsche Lösung.
Ein einfacher Einstieg bash
wäre
for i in $(seq 1 10) ; do
echo -n "sometext "
if [ $i = 10 ] ; then
echo
fi
done
Oder
yes sometext | head -11 | paste -sd' '
Oder, wenn Sie es wirklich mögen xargs
:
echo sometext | xargs yes 2>/dev/null | head -12 | paste -sd' '