ファイル内の行ごとに1つの数字のシーケンスを作成する


28

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

何かのようなもの

magic_command start 100 lines 5 > b.txt

その後、、b.txtだろう

100
101
102
103
104

.txtを呼び出す必要はありません
ixtmixilix

回答:


48

これにはすでにコマンドがあります:

seq 100 104

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

100
101
102
103
104

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

seq 100 104 > my_file.txt

そしてseq 100 2 104、すなわち、2単位で印刷されます:100102104


wooooooooooooooooooooooooooooooooooooooowwwwwwwwwww、あなたは天才です。それでおしまい。私は毎秒さらにUNIXが大好きです!ありがとう。
SpaceDog

seqのような小さな宝石について学ぶことができる場所はありますか?数字のシーケンス、同じテキスト行をx回含むファイル、「a、b、c、d ..」の文字シーケンスを生成できるコマンドなど、空中からものを作成できるコマンドに興味があります。それ。おかげで
SpaceDog

@DigitalRobot:ある時点で、おそらくperlのワンライナーを書いていることに気付くでしょう。
カスカベル

1
@SpaceDogあなたの愛は見当違いです。seqUnixではなくGNU Coreutilsからのものです。GNUは、GNU is Not Unixの略です!
カズ

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

3
私は毎日zshを愛しています。
クリスチャンマン

1
@Gillesの最初の例は、をインクリメントしないので永遠に続きます$i
ジェームズベート

回答のこれらの種類は、本物の宝石がある- 1の質問に答えるためにOPは実際に(「私は、私はXYZことはできませんので、配列を持っていない」)尋ねることができなかったでしょう
ixtmixilix

7

バッシュ:

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

1はその前のように誰も利用BCまたはDCを見たことがない
ixtmixilix

そしてそれはあなたの直流答えは稀皮肉とupvote-価値があることを私を打つ
ixtmixilix

それは不必要に複雑でしたが、意図的なものではなかったので、私は今それを単純化しました。
ピータージョンアクラム

1

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

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
あなたが行の先頭にスペースを取得しないためにのprintf(1)を使用することができますprintf '%s\n' {100..104}
CAMH

1

使用した以外にも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つずつ番号のシーケンスを作成します...そしてところで、これはpython2でのみ動作します。
don_crissti
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.