¿Cómo puedo repetir un personaje en Bash?

Resuelto sid_com asked hace 13 años • 41 respuestas

¿ Cómo podría hacer esto con echo?

perl -E 'say "=" x 100'
sid_com avatar Mar 18 '11 15:03 sid_com
Aceptado

Puedes usar:

printf '=%.0s' {1..100}

Cómo funciona esto:

Bash se expande {1..100}para que el comando se convierta en:

printf '=%.0s' 1 2 3 4 ... 100

Configuré el formato de printf, =%.0slo que significa que siempre imprimirá uno =sin importar el argumento que se le dé. Por tanto imprime 100 =s.

dogbane avatar Mar 18 '2011 08:03 dogbane

No es una manera fácil. Pero por ejemplo:

seq -s= 100|tr -d '[:digit:]'
# Editor's note: This requires BSD seq, and breaks with GNU seq (see comments)

O tal vez una forma conforme al estándar:

printf %100s |tr " " "="

También hay un tput rep, pero en cuanto a mis terminales actuales (xterm y linux), no parecen admitirlo :)

 avatar Mar 18 '2011 08:03