1行に1つずつ、特定の番号から始まる一連の番号で構成されるファイルを、薄い空気から作成する方法はありますか?
何かのようなもの
magic_command start 100 lines 5 > b.txt
その後、 b.txt
だろう
100
101
102
103
104
これのためのコマンドはすでにあります:
seq 100 104
これらの数値を別々の行に出力します:
100
101
102
103
104
したがって、この出力をファイルに送るだけです。
seq 100 104 > my_file.txt
およびseq 100 2 104
は、2つ単位で印刷します。つまり、100
、102
、104
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
前の例に示すように、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 ~]~
それらの前のスペースを気にしない場合:
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
それに応じて。