আমি কীভাবে কোনও পাঠ্য ফাইলের প্রতিটি লাইনের শুরুতে একটি লাইন নম্বর এবং ট্যাব যুক্ত করতে পারি?
আমি কীভাবে কোনও পাঠ্য ফাইলের প্রতিটি লাইনের শুরুতে একটি লাইন নম্বর এবং ট্যাব যুক্ত করতে পারি?
উত্তর:
awk '{printf "%d\t%s\n", NR, $0}' < filename
awk '{print NR, "\t", $0}'
।
nl
ভুল। উত্স কোডে, এটি আপনাকে কখনই সঠিক লাইন নম্বর দেবে না, কারণ এটি কেবল শ্বেত স্পেসের সাথে লাইন গণনা করে না।
এনএল কমান্ড এটি করা উচিত, তবে এটি লাইন সংখ্যার আগেও স্থান যুক্ত করে। এটি লিনাক্স কোর্টিলসের অংশ।
nl lines.txt
1 $bkWTN
2 $cV8$.
nl
সংখ্যার আগে স্থানটি বাদ দিতে বলতে পারেন । -w1
কোনও সংখ্যার সর্বনিম্ন প্রস্থটি এটি বলার জন্য কেবল বিকল্পটি ব্যবহার করুন
-nln
আপনি পারেন বাম-ন্যায্যতা আপনি রেখা নম্বর আগে জায়গা (গুলি) না চান তাহলে। এছাড়াও, আপনি যে ট্যাব বিভাজকটি ব্যবহার করতে পারেন তা নির্দিষ্ট করতে -s$'\t'
বা -s' '
( ctrl+v
তারপরে একক উদ্ধৃতিগুলির মধ্যে একটি ট্যাব সন্নিবেশ করানো tab
) করতে পারেন।
nl -w1
(জিএনইউ কোর্টিল ৮৮.২৪ থেকে) লাইন নম্বরগুলি কেটে দেয় না ।
sed = test.txt | sed 'N;s/\n/\t/'
"সেড =" কমান্ডটি ক্যারেজ রিটার্নের পরে লাইন নম্বর এবং তার পরের লাইনটি প্রিন্ট করবে।
"N; s / \ n / \ t /" এক্সপ্রেশনটি প্রতিটি লাইন নেবে, পরবর্তী লাইনটি (অর্থাত্ লাইন নম্বর এবং লাইন) পাবে এবং ক্যারিয়ারের রিটার্নটি একটি ট্যাব দ্বারা প্রতিস্থাপন করবে।
\n
হ'ল লাইন ফিড (সাধারণত "নিউলাইন" বলা হয়, যেহেতু এটির প্রথম বিস্তৃত ব্যবহার ইউনিক্সে ছিল) এবং \r
এটি ক্যারেজ রিটার্ন। উইন্ডোজ ব্যবহার করে \r\n
(এছাড়াও হিসাবে চিহ্নিত করা হয় CRLF
)।
কেমন
cat -n somefile.txt
?
ঠিক আছে, এখানে একটি লাইন বাশ সমাধান:
$ IFS=$'\n';x=1;for l in $(<file.txt);do echo -e "$x\t$l";((x+=1));done
$ IFS=
প্রথম আইএফএস সেটিংটি একবারে সম্পূর্ণ লাইন পড়তে বাশকে বলে। দ্বিতীয় লাইনটি আইএফএসকে ডিফল্টরূপে পুনরায় সেট করে।
একটি যুক্ত বোনাস হিসাবে, এটি আপনার শেলের মধ্যে পুরোপুরি চলে এবং কোনও প্রোগ্রাম চালায় না!
sed file.txt -e 's/^/\t/' | cat -n | sed -e 's/^\t//'
বা কিছু অ-জিএনইউ'র জন্য sed
:
cat file.txt | sed -e 's/^/\\t/' | cat -n | sed -e 's/^\\t//'