101 votes

Commande Linux pour répéter une chaîne de caractères n fois

Existe-t-il une commande Linux intégrée qui permette de sortir une chaîne de caractères qui est n fois une chaîne de caractères d'entrée ?

4voto

brablc Points 1310

Pas de magie ici :

seq 5 | awk '{print "Hello World"}'

3voto

Abbas Points 3737

En supposant que vous souhaitiez quelque chose comme l'outil Perl x où vous n'obtenez pas automatiquement une nouvelle ligne entre les répétitions :

x() {
  # usage: x string num
  for i in $(seq 1 $2); do printf "%s" "$1"; done
  # print a newline only if the string does not end in a newline
  [[ "$1" == "${1%$'\n'}" ]] && echo ""
}

x Hi 10  # ==> HiHiHiHiHiHiHiHiHiHi

x $'Hello World!\n' 3

J'ai explicitement utilisé un for parce que vous ne pouvez pas écrire {1..$n} dans bash : l'expansion des accolades est faite avant la substitution des variables.

3voto

Si vous êtes sous BSD, vous pouvez simplement utiliser seq .

$ seq -f "Hello, world" 5
Hello, world
Hello, world
Hello, world
Hello, world
Hello, world

2voto

Tanis.7x Points 101

Pas vraiment intégré à Linux, mais si vous avez installé Python

python
>>>var = "string"
>>>var*n

Ou en une seule ligne, comme le suggère le commentateur :

python -c 'print "This is a test.\n" * 10'

2voto

bryan kennedy Points 1666
line="==========================="
line=${line:0:10}
${line//"="/"ten "}

sorties

ten ten ten ten ten ten ten ten ten ten

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X