সংখ্যার ক্রম তৈরি করা, একটি ফাইলের প্রতি লাইন একটি


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


woooooooooooooooooooooooooooooooooooooowwwwwwwwwwwwww, আপনি একজন প্রতিভা। এটাই. আমি প্রতি সেকেন্ডে আরও ইউনিক্স ভালবাসি! ধন্যবাদ।
স্পেসডগ

এমন কোনও জায়গা আছে যেখানে আমি সেকের মতো ছোট রত্ন সম্পর্কে শিখতে পারি? আমি কমান্ডগুলিতে আগ্রহী যেগুলি পাতলা বাতাসের বাইরে স্টাফ তৈরি করতে পারে, যেমন সংখ্যার ক্রম, একই পাঠ্য লাইনের এক্স টাইমযুক্ত ফাইল, যে কমান্ডগুলি "a, b, c, d ..", অক্ষরের ক্রম তৈরি করতে পারে যে। ধন্যবাদ
স্পেসডগ

@ ডিজিটালরোবোট: কোন এক সময় আপনি সম্ভবত নিজেকে পার্ল ওয়ান-লাইনার লেখার সন্ধান করতে চলেছেন।
ক্যাসকেবেল

1
@ স্পেসডগ আপনার ভালবাসা ভুল জায়গায় আছে। seqGNU Coreutils থেকে, ইউনিক্স নয়। জিএনইউ এমনকি জিএনইউ মানে ইউনিক্স নয়!
কাজ

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 প্রশ্নের উত্তর দেওয়ার জন্য ওপি আসলে জিজ্ঞাসা করতে পারত না ('আমার সিক নেই, তাই আমি
জাইজ

8

ব্যাশ:

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

Perl:

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 এর আগে কেউ আর কখনও বিসি বা ডিসি ব্যবহার করতে দেখেনি
ixtmixilix

এবং এটি আমাকে আঘাত করে যে আপনার
ডিসির

এটি অযথা জটিল ছিল, তবে উদ্দেশ্য অনুসারে নয়, তাই এখনই এটি সহজ করে তুলেছি।
পিটার জন অ্যাকলাম

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 ~]~ 

প্রতি লাইনে একটি করে সংখ্যার ক্রম তৈরি করা ... এবং বিটিডব্লিউ, এটি কেবল পাইথন 2 দিয়ে কাজ করে।
don_crissti
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.