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.txt
olur
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.txt
olur
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 104
yani iki, artışlarla yazdırır: 100
, 102
,104
seq
GNU Coreutils'ten, Unix'ten değil. GNU bile GNU'nun Unix olmadığını ifade ediyor!
Linux seq
tam olarak bunu yapan komutla gelir. seq
Komutunuz 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 2
uygun ş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 ~]~