Відповіді:
Для цього вже є команда:
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
або в ksh / bash / zsh
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
Редагуйте команду bonus 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 ~]~