web-dev-qa-db-ja.com

ファイルの行ごとに1つずつ、一連​​の数字を作成する

1行に1つずつ、特定の番号から始まる一連の番号で構成されるファイルを、薄い空気から作成する方法はありますか?

何かのようなもの

magic_command start 100 lines 5 > b.txt

その後、 b.txt だろう

100
101
102
103
104
30
SpaceDog

これのためのコマンドはすでにあります:

seq 100 104

これらの数値を別々の行に出力します:

100
101
102
103
104

したがって、この出力をファイルに送るだけです。

seq 100 104 > my_file.txt

およびseq 100 2 104は、2つ単位で印刷します。つまり、100102104

52
neuron34

Linuxには、まさにそれを行うseqコマンドが同梱されています。 seqコマンドがない場合は、簡単な1行です。

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

bash:

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

Perl:

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

前の例に示すように、seqwhileforprintfPerlechoを使用する以外に、 Pythonも使用できます

python -c "print list(range(100,105))"

例:

[user@linux ~]~ python -c "print list(range(100,105))"
[100, 101, 102, 103, 104]
[user@linux ~]~ 
1
Sabrina

それらの前のスペースを気にしない場合:

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それに応じて。

1
Kevin