संख्याओं का क्रम बनाते हुए, एक फ़ाइल में प्रति पंक्ति


29

क्या पतली हवा से बाहर निकलने का एक तरीका है, एक फ़ाइल जो संख्याओं का एक क्रम है, किसी दिए गए नंबर पर शुरू, एक प्रति पंक्ति?

कुछ इस तरह

magic_command start 100 lines 5 > b.txt

और फिर, b.txtहोगा

100
101
102
103
104

इसे कॉल करने की आवश्यकता नहीं है .txt
ixtmixilix

जवाबों:


49

इसके लिए पहले से ही एक कमांड है:

seq 100 104

अलग-अलग लाइनों पर इन नंबरों को प्रिंट करेंगे:

100
101
102
103
104

तो बस इस आउटपुट को एक फ़ाइल में निर्देशित करें:

seq 100 104 > my_file.txt

और seq 100 2 104दो, अर्थात् की वृद्धि के साथ प्रिंट होगा: 100, 102,104


wooooooooooooooooooooooooooooooooooooooooowwwwwwwwwww, आप एक प्रतिभाशाली हैं। बस। मुझे हर सेकंड यूनिक्स ज्यादा पसंद है! धन्यवाद।
स्पेसडॉग

क्या कोई जगह है जहाँ मैं seq जैसे छोटे रत्नों के बारे में जान सकता हूँ? मुझे उन कमांड्स में दिलचस्पी है जो पतली हवा से सामान बना सकती हैं, जैसे संख्याओं का क्रम, फाइलें जिसमें एक ही टेक्स्ट लाइन x बार होती है, कमांड जो अक्षरों का अनुक्रम "a, b, c, d ..", सामान की तरह उत्पन्न कर सकते हैं। उस। धन्यवाद
Spacedog

@DigitalRobot: कुछ बिंदु पर आप शायद खुद को केवल एक-लाइनर्स लिखकर खोजने जा रहे हैं।
कैस्केबेल 5

1
@SpaceDog आपका प्यार गलत है। seqजीएनयू कोर्यूटिल्स से है, यूनिक्स से नहीं। GNU भी GNU के लिए खड़ा है यूनिक्स नहीं है!
काज

12

लिनक्स के साथ 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
@ अपना पहला उदाहरण हमेशा के लिए जारी रखेंगे क्योंकि आप कभी वेतन वृद्धि नहीं करते हैं $i
jamesbtate

ओ 1 प्रश्न का उत्तर देने के लिए ओपी वास्तव में नहीं पूछ सकता था ('मेरे पास seq नहीं है, इसलिए मैं xyz नहीं कर सकता') - इस प्रकार के उत्तर असली रत्न हैं
ixtmixilix

8

दे घुमा के:

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

पर्ल:

perl -le 'print for 100..104'

BC:

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

डीसी:

echo '100 104 sb [p 1 + d lb !<m] sm lm x' | dc

+1 ने पहले कभी किसी को bc या dc का उपयोग करते हुए नहीं देखा
ixtmixilix

और यह मुझ पर प्रहार करता है कि आपका dc उत्तर असामान्य रूप से
भूनना

यह अनावश्यक रूप से जटिल था, लेकिन उद्देश्य पर नहीं, इसलिए मैंने इसे अब सरल कर दिया है।
पीटर जॉन एकलाम

1

यदि आप उनमें से अधिकांश के सामने जगह नहीं रखते हैं:

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
लाइन की शुरुआत में जगह न पाने के लिए आप printf '%s\n' {100..104}
प्रिंटफ

1

इसके अलावा का उपयोग कर seq, while, for, printf, perl, echoके रूप में पिछले उदाहरण में दिखाया गया है, तो आप भी अजगर का उपयोग कर सकते

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

उदाहरण:

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

संख्याओं का एक क्रम बनाते हुए, प्रति पंक्ति एक ... और btw, यह केवल python2 के साथ काम करता है।
don_crissti
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.