adrian@Fourier:~$ printf 'HelloWorld\n%.0s' HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld adrian@Fourier:~$
Linux-Befehl, um einen String n-mal zu wiederholen
Gibt es einen integrierten Linux-Befehl, mit dem eine Zeichenfolge ausgegeben werden kann, die n-mal eine Eingabezeichenfolge ist?
16 Antworten auf die Frage
- Beliebte
- Neu
- Mit Kommentaren
- Aktiv
Hier ist ein altmodischer Weg, der ziemlich tragbar ist:
yes "HelloWorld" | head -n 10
Dies ist eine konventionellere Version der Antwort von Adrian Petrescu, die eine Brace-Erweiterung verwendet:
for i in do echo "HelloWorld" done
Das ist äquivalent zu:
for i in 1 2 3 4 5
Dies ist eine etwas prägnantere und dynamischere Version von pikes Antwort:
printf -v spaces '%*s' 10 ''; printf '%s\n' $
Viele gute Möglichkeiten wurden bereits erwähnt. Kann nicht über gutes altes vergessen seq
:
[john @ awesome] $ für i in `seq 5`; Echo "Hi", fertig Hallo Hallo Hallo Hallo Hallo
Vielleicht ein anderer Weg, der für Sie allgemeiner und nützlicher ist:
adrian@Fourier:~$ n=5 adrian@Fourier:~$ for (( c=1; c<=n; c++)) ; do echo "HelloWorld" ; done HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld adrian@Fourier:~$
Die Bash-Shell ist mächtiger als die meisten Leute denken :)
You can use a trick. Echoing an empty variable does not print anything. So you can write:
echo word$wojek
If $wojek1 $wojek2
... $wojek100
are non-existing variables you will get your word repeated 100 times without anything else.
This can be parameterized and doesn't require a temp variable, FWIW:
printf "%$s" | sed 's/ /blah/g'
Or, if $N
is the size of a bash array:
echo $
Wiederholungszeiten,n
nur setzen n-1
,
in {}
:
$ echo 'helloworld'{,,} helloworld helloworld helloworld
awk 'BEGIN '
Ergebnis
Hallo Hallo Hallo Hallo
basierend auf was @pike angedeutet hat
für jedes Zeichen in der Zeichenfolge Echozeichenfolge
echo $
Ein Beispiel für eine mit =
Zeichen unterstrichene Überschrift
export heading='ABCDEF'; export replace='='; echo -e "$\n$"
wird ausgegeben
ABCDEF ======
Dies scheint zwischen Linux und OS X zu portieren und das macht mich glücklich.
nJoy!
If you're on BSD, you can just use seq
.
$ seq -f "Hello, world" 5 Hello, world Hello, world Hello, world Hello, world Hello, world
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4