Ответы:
Для этого уже есть команда:
seq 100 104
напечатает эти числа в отдельных строках:
100
101
102
103
104
Так что просто направьте этот вывод в файл:
seq 100 104 > my_file.txt
и seq 100 2 104
будет печатать с шагом двух, а именно: 100
, 102
,104
seq
это из GNU Coreutils, а не Unix. GNU даже означает, что GNU - это не Unix!
Linux поставляется с seq
командой, которая делает именно это. Если у вас нет seq
команды, это простая однострочная строка:
i=100; while [ $i -le 104 ]; do echo $i; i=$((i+1)); done >b.txt
или в кш / баш / зш
for ((i=100; i<=104; i++)); do echo $i; done >b.txt
или в зш
print -l {100..104} >b.txt
$i
.
Баш:
printf '%s\n' {100..105}
Perl:
perl -le 'print for 100..104'
До нашей эры:
echo 'for (i = 100 ; i <= 104 ; ++i) i' | bc
Округ Колумбия:
echo '100 104 sb [p 1 + d lb !<m] sm lm x' | dc
Если вы не против места перед большинством из них:
echo -e {100..104}\\n >numbers-file.txt
Без пробела, но с дополнительной командой:
echo {100..104} | sed 's/ /\n/g' >numbers-file.txt
Редактировать бонусную команду vim (открыть vim):
i100[esc]qqyyp[ctrl-a]q2@q:w numbers-file.txt
Для большего числа увеличьте 2
соответственно.
printf '%s\n' {100..104}
Помимо использования seq
, while
, for
, printf
,perl
, echo
как показано в предыдущем примере, вы можете также использовать Python
python -c "print list(range(100,105))"
Пример:
[user@linux ~]~ python -c "print list(range(100,105))"
[100, 101, 102, 103, 104]
[user@linux ~]~