
echo
se utiliza para producir una nueva línea en Linux.
echo -e '\n'
2 lineas
echo -e '\n\n'
3 líneas y así sucesivamente.
p.ej
user@linux:~$ echo
user@linux:~$ echo -e '\n'
user@linux:~$ echo -e '\n\n'
user@linux:~$
En lugar de escribir \n\n
, sería posible utilizar algo como \n * 3
.
Salida deseada
Sé echo -e '\n * 3'
que no produciré 3 líneas, pero espero que entiendas lo que quiero decir.
user@linux:~$ echo -e '\n * 3' # <== I hope you get what I mean
user@linux:~$
Respuesta1
Si está utilizando bash o ksh93 o zsh entonces
printf '%.0s\n' {1..3}
producirá 3 nuevas líneas. Se {1..3}
expande a 1 2 3
y luego los printf
genera como cadenas de ancho cero seguidas de una nueva línea.
Respuesta2
Si se requiere una solución POSIX, use:
bucle
Además del obvio (y feo) bucle POSIX:
i=0; while [ "$((i+=1))" -le 7 ]; do echo; done
POSIX (portátil)
Existen otras soluciones (más cortas, no necesariamente más rápidas):
(1) Imprimir espacios, convertir a nuevas líneas.
printf '%*s' 30 | tr ' ' '\n'
(2) O, para obtener 23 líneas
seq 23 | tr -dc '\n'
(3) Usando awk:
seq 23 | awk '{printf "\n"}'
(4) Suponiendo que IFS es el predeterminado
printf '%.0s\n' $(seq 23)
(5) sed
agrega una nueva línea adicional; para 23 nuevas líneas, use 22:
printf '%0*d' 22 | sed 'y/0/\n/'
(6) Algunos shells crean automáticamente todos los elementos de la matriz con números inferiores.
zsh -c 'a[33]=1; printf "%.0s\n" "${a[@]}"'
(7) Obtener algunos bytes NUL
head -c 5 /dev/zero | tr '\0' '\n'
ampliamente conocida
Éstas se encuentran además de las soluciones más conocidas (y utilizadas):
(8) Utilice head
el conteo:
yes '' | head -n 23
(9)NoPOSIX. Para algunos shells (ksh, bash, zsh al menos):
printf '%.0s\n' {1..23}
otros idiomas
Y, por supuesto, usando (noPOSIX) lenguajes de nivel superior:
(10) perla
perl -e 'print "\n" x 23'
perl -E 'say "\n" x 22'
(11) PHP
php -r 'echo str_repeat( "\n" , 3 );'
(12) Pitón
python -c 'print("\n" * 3)'
Respuesta3
$ yes "" | head -30
para conseguirte 30 nuevas líneas.
Respuesta4
En caso de que usar Python sea una opción, el siguiente comando se comporta de la manera deseada:
python -c 'print("\n" * 3)'