Her satırda bir tane olmak üzere, belirli bir sayıdan başlayarak, bir sayı dizisi olan bir dosya olan ince hava oluşturmanın bir yolu var mı?
gibi bir şey
magic_command start 100 lines 5 > b.txt
ve sonra b.txtolur
100
101
102
103
104
Her satırda bir tane olmak üzere, belirli bir sayıdan başlayarak, bir sayı dizisi olan bir dosya olan ince hava oluşturmanın bir yolu var mı?
gibi bir şey
magic_command start 100 lines 5 > b.txt
ve sonra b.txtolur
100
101
102
103
104
Yanıtlar:
Bunun için zaten bir komut var:
seq 100 104
bu numaraları ayrı satırlara yazdıracak:
100
101
102
103
104
Bu yüzden sadece bu çıktıyı bir dosyaya yönlendirin:
seq 100 104 > my_file.txt
ve seq 100 2 104yani iki, artışlarla yazdırır: 100, 102,104
seqGNU Coreutils'ten, Unix'ten değil. GNU bile GNU'nun Unix olmadığını ifade ediyor!
Linux seqtam olarak bunu yapan komutla gelir. seqKomutunuz yoksa , kolay bir gömlek.
i=100; while [ $i -le 104 ]; do echo $i; i=$((i+1)); done >b.txt
veya ksh / bash / zsh cinsinden
for ((i=100; i<=104; i++)); do echo $i; done >b.txt
veya zsh cinsinden
print -l {100..104} >b.txt
$i.
bash:
printf '%s\n' {100..105}
perl:
perl -le 'print for 100..104'
M.Ö:
echo 'for (i = 100 ; i <= 104 ; ++i) i' | bc
dC:
echo '100 104 sb [p 1 + d lb !<m] sm lm x' | dc
Çoğunun önünde boşluk bırakmazsanız:
echo -e {100..104}\\n >numbers-file.txt
Boşluksuz ama ekstra komutlu:
echo {100..104} | sed 's/ /\n/g' >numbers-file.txt
Bonus vim komutu için düzenleme (açık vim):
i100[esc]qqyyp[ctrl-a]q2@q:w numbers-file.txt
Daha fazla numara için 2uygun şekilde artırın .
printf '%s\n' {100..104}
Kullanmanın yanı sıra seq, while, for, printf, perl, echoönceki örnekte gösterildiği gibi, ayrıca Python kullanabilirsiniz
python -c "print list(range(100,105))"
Örnek:
[user@linux ~]~ python -c "print list(range(100,105))"
[100, 101, 102, 103, 104]
[user@linux ~]~