создавая последовательность чисел, один на строку в файле

Office 2007 работает вполне хорошо с вином. Выполнение целой виртуальной машины только для офиса могло бы быть излишеством.

30
29.11.2011, 01:50
4 ответа

Уже существует команда для этого:

seq 100 104

распечатает эти числа на отдельных строках:

100
101
102
103
104

Поэтому просто направьте этот вывод в файл:

seq 100 104 > my_file.txt

и seq 100 2 104 распечатает в инкрементах два, а именно: 100, 102, 104

50
27.01.2020, 19:38
  • 1
    wooooooooooooooooooooooooooooooooooooooowwwwwwwwwww, Вы - гений.Именно. Я люблю Unix больше каждую секунду!Спасибо. –  SpaceDog 29.11.2011, 01:55
  • 2
    является там местом, где я могу узнать о небольших драгоценных камнях как seq? Я интересуюсь командами, которые могут создать материал из ничего, как последовательность чисел, файлы, которые содержат ту же текстовую строку x времена, команды, которые могут генерировать последовательность букв "a, b, c, d..", наполните как этот. спасибо –  SpaceDog 29.11.2011, 01:58
  • 3
    @DigitalRobot: В какой-то момент Вы, вероятно, собираетесь писать просто остроты жемчуга. –  Cascabel 29.11.2011, 07:00
  • 4
    @SpaceDog Ваша любовь неуместен. seq от GNU Coreutils, не Unix. GNU даже обозначает GNU, не Unix! –  Kaz 06.11.2015, 07:12

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

или в zsh

print -l {100..104} >b.txt
12
27.01.2020, 19:38
  • 1
    я люблю zsh все больше каждый день. –  Christian Mann 29.11.2011, 06:20
  • 2
    @Gilles, который Ваш первый пример продолжит навсегда, потому что Вы никогда не увеличиваете $i. –  jamesbtate 29.11.2011, 07:52
  • 3
    +1 для ответа на вопрос, который OP на самом деле не смог бы задать ('у меня нет seq, таким образом, я не могу xyz') - те виды ответов являются реальными драгоценными камнями –  ixtmixilix 30.11.2011, 01:38

удар:

printf '%s\n' {100..105}

жемчуг:

perl -le 'print for 100..104'

до н.э:

echo 'for (i = 100 ; i <= 104 ; ++i) i' | bc

dc:

echo '100 104 sb [p 1 + d lb !<m] sm lm x' | dc
8
27.01.2020, 19:38
  • 1
    +1, никогда не замечаемыми любой использовать до н.э или dc как этот перед –  ixtmixilix 30.11.2011, 01:38
  • 2
    , и он ударяет меня, что Ваш ответ dc является необыкновенно кривым и upvote-достойным –  ixtmixilix 30.11.2011, 01:39
  • 3
    Это было излишне сложно, но не нарочно, таким образом, я упростил его теперь. –  Peter John Acklam 30.11.2011, 10:38

Если Вы не возражаете против пространства перед большинством из них:

echo -e {100..104}\\n >numbers-file.txt

Без пространства, но с дополнительной командой:

echo {100..104} | sed 's/ /\n/g' >numbers-file.txt

Редактирование для бонусной команды энергии (открывают энергию):

i100[esc]qqyyp[ctrl-a]q2@q:w numbers-file.txt

Для большего количества чисел, увеличения 2 соответственно.

1
27.01.2020, 19:38
  • 1
    , можно использовать printf (1) для не получения пространства в начале строки: printf '%s\n' {100..104} –  camh 29.11.2011, 09:39

Теги

Похожие вопросы