Existe-t-il un moyen de créer à partir de rien, un fichier qui est une séquence de nombres, en commençant par un nombre donné, un par ligne?
quelque chose comme
magic_command start 100 lines 5 > b.txt
et puis, b.txtserait
100
101
102
103
104
Existe-t-il un moyen de créer à partir de rien, un fichier qui est une séquence de nombres, en commençant par un nombre donné, un par ligne?
quelque chose comme
magic_command start 100 lines 5 > b.txt
et puis, b.txtserait
100
101
102
103
104
Réponses:
Il existe déjà une commande pour cela:
seq 100 104
imprimera ces numéros sur des lignes distinctes:
100
101
102
103
104
Il suffit donc de diriger cette sortie dans un fichier:
seq 100 104 > my_file.txt
et seq 100 2 104imprimera par tranches de deux, à savoir: 100, 102,104
seqvient de GNU Coreutils, pas d'Unix. GNU signifie même que GNU n'est pas Unix!
Linux est livré avec la seqcommande qui fait exactement cela. Si vous n'avez pas la seqcommande, c'est une ligne simple:
i=100; while [ $i -le 104 ]; do echo $i; i=$((i+1)); done >b.txt
ou en ksh / bash / zsh
for ((i=100; i<=104; i++)); do echo $i; done >b.txt
ou en zsh
print -l {100..104} >b.txt
$i.
frapper:
printf '%s\n' {100..105}
perl:
perl -le 'print for 100..104'
avant JC:
echo 'for (i = 100 ; i <= 104 ; ++i) i' | bc
dc:
echo '100 104 sb [p 1 + d lb !<m] sm lm x' | dc
Si cela ne vous dérange pas un espace devant la plupart d'entre eux:
echo -e {100..104}\\n >numbers-file.txt
Sans l'espace mais avec une commande supplémentaire:
echo {100..104} | sed 's/ /\n/g' >numbers-file.txt
Modifier pour une commande bonus vim (ouvrir vim):
i100[esc]qqyyp[ctrl-a]q2@q:w numbers-file.txt
Pour plus de chiffres, augmentez en 2conséquence.
printf '%s\n' {100..104}
En plus d' utiliser seq, while, for, printf, perl, echocomme indiqué dans l' exemple précédent, vous pouvez également utiliser Python
python -c "print list(range(100,105))"
Exemple:
[user@linux ~]~ python -c "print list(range(100,105))"
[100, 101, 102, 103, 104]
[user@linux ~]~