¿Hay alguna manera de crear de la nada un archivo que sea una secuencia de números, comenzando en un número dado, uno por línea?
algo como
magic_command start 100 lines 5 > b.txt
y luego, b.txtsería
100
101
102
103
104
¿Hay alguna manera de crear de la nada un archivo que sea una secuencia de números, comenzando en un número dado, uno por línea?
algo como
magic_command start 100 lines 5 > b.txt
y luego, b.txtsería
100
101
102
103
104
Respuestas:
Ya hay un comando para esto:
seq 100 104
imprimirá estos números en líneas separadas:
100
101
102
103
104
Tan solo dirija esta salida a un archivo:
seq 100 104 > my_file.txt
y seq 100 2 104se imprimirá en incrementos de dos, a saber: 100, 102,104
seqes de GNU Coreutils, no de Unix. ¡GNU incluso significa que GNU no es Unix!
Linux se envía con el seqcomando que hace exactamente eso. Si no tiene el seqcomando, es fácil:
i=100; while [ $i -le 104 ]; do echo $i; i=$((i+1)); done >b.txt
o en ksh / bash / zsh
for ((i=100; i<=104; i++)); do echo $i; done >b.txt
o en zsh
print -l {100..104} >b.txt
$i.
golpetazo:
printf '%s\n' {100..105}
perl:
perl -le 'print for 100..104'
antes de Cristo:
echo 'for (i = 100 ; i <= 104 ; ++i) i' | bc
corriente continua:
echo '100 104 sb [p 1 + d lb !<m] sm lm x' | dc
Si no te importa un espacio delante de la mayoría de ellos:
echo -e {100..104}\\n >numbers-file.txt
Sin el espacio pero con un comando extra:
echo {100..104} | sed 's/ /\n/g' >numbers-file.txt
Editar para un comando vim adicional (vim abierto)
i100[esc]qqyyp[ctrl-a]q2@q:w numbers-file.txt
Para más números, aumente en 2consecuencia.
printf '%s\n' {100..104}
Además de usar seq, while, for, printf, perl, echocomo se muestra en el ejemplo anterior, también puede usar Python
python -c "print list(range(100,105))"
Ejemplo:
[user@linux ~]~ python -c "print list(range(100,105))"
[100, 101, 102, 103, 104]
[user@linux ~]~