Simplesmente,
printf '0\n%.0s' {1..1000}
ou usando for
loop,
for i in {1..1000}; do echo "0"; done
usando awk
,
awk 'BEGIN{for(c=0;c<1000;c++) print "0"}'
Como @ StéphaneChazelas apontou, Usar {1..1000}
requer zsh
ou versões recentes de bash
, yash
ou ksh93
e também significa armazenar todo o intervalo na memória (possivelmente várias vezes). Você perceberá que ele se tornará muito mais lento (se não falhar para a OOM) do que usar awk
ou yes 0 | head ...
para intervalos grandes como {1..10000000}
. Ou em outras palavras, não escala bem. Uma solução possível seria usar
for ((i=0; i<=10000000;i++)); do echo 0; done
( ksh93
/ zsh
/ bash
) não teria o problema de memória, mas ainda teria ordens de magnitude mais lento do que uma ferramenta dedicada ou abordagem de linguagem de programação real.