linux - একটি নথিতে লাইন গণনা কিভাবে?




bash command-line (13)

অথবা একটি ফাইল নাম প্যাটার্ন সহ সাবডিরেক্টরিতে সমস্ত লাইন গণনা করুন (উদাহরণস্বরূপ ফাইলের নাম টাইমস্ট্যাম্প সহ লগফিলগুলি):

wc -l ./**/*_SuccessLog.csv

আমার মত লাইন আছে, এবং আমি আসলে জানতে চাই যে কত লাইন আছে ...

09:16:39 AM  all    2.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   94.00
09:16:40 AM  all    5.00    0.00    0.00    4.00    0.00    0.00    0.00    0.00   91.00
09:16:41 AM  all    0.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:42 AM  all    3.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:43 AM  all    0.00    0.00    1.00    0.00    1.00    0.00    0.00    0.00   98.00
09:16:44 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:16:45 AM  all    2.00    0.00    6.00    0.00    0.00    0.00    0.00    0.00   92.00

Linux কমান্ড ব্যবহার করে তাদের সব গণনা করার উপায় আছে কি?


অনেক উপায় আছে। wc ব্যবহার করে এক।

wc -l file

অন্যদের অন্তর্ভুক্ত

awk 'END{print NR}' file

sed -n '$=' file (GNU sed)

grep -c ".*" file

আমি এই পুরানো কিন্তু জানি এখনও: ফিল্টার লাইন গণনা

আমার ফাইল দেখাচ্ছে:

Number of files sent
Company 1 file: foo.pdf OK
Company 1 file: foo.csv OK
Company 1 file: foo.msg OK
Company 2 file: foo.pdf OK
Company 2 file: foo.csv OK
Company 2 file: foo.msg Error
Company 3 file: foo.pdf OK
Company 3 file: foo.csv OK
Company 3 file: foo.msg Error
Company 4 file: foo.pdf OK
Company 4 file: foo.csv OK
Company 4 file: foo.msg Error

যদি আমি জানতে চাই যে কত ফাইল পাঠানো হয়েছে ঠিক আছে:

grep "OK" <filename> | wc -l

অথবা

grep -c "OK" filename

আমি এই প্রশ্নটি দেখেছি যখন আমি একাধিক ফাইল লাইন গণনা করার উপায় খুঁজছি, তাই যদি আপনি একটি .txt ফাইলের একাধিক ফাইল লাইন গণনা করতে চান তবে আপনি এটি করতে পারেন,

cat *.txt | wc -l

এটি একটি .txt ফাইল চালানো হবে;)


আমি শুধু এটি করতে একটি প্রোগ্রাম তৈরি ( node )

npm install gimme-lines
gimme-lines verbose --exclude=node_modules,public,vendor --exclude_extensions=html

https://github.com/danschumann/gimme-lines/tree/master


উপরের পছন্দের পদ্ধতি কিন্তু "বিড়াল" কমান্ডটি সহায়ক হতে পারে:

cat -n <filename>

লাইন নম্বর দিয়ে ফাইলের সম্পূর্ণ সামগ্রী দেখাবে।


টুল wc ইউনিক্স এবং ইউনিক্স-এর মত অপারেটিং সিস্টেমে "ওয়ার্ড কাউন্টার" হয়, আপনি এটি -l বিকল্পটি যোগ করে একটি ফাইলের লাইন গণনা করতে ব্যবহার করতে পারেন, তাই wc -l foo লাইনগুলির সংখ্যা গণনা করবে । আপনি এই ধরনের প্রোগ্রাম থেকে পাইপ আউটপুট করতে পারেন: ls -l | wc -l ls -l | wc -l , যা আপনাকে বর্তমান ডিরেক্টরির মধ্যে কত ফাইলগুলি বলবে।


পুনর্নির্দেশ / wc -l ফাইলের আউটপুট পাইপ করা উচিত, যেমন নিম্নোক্ত:

cat /etc/fstab | wc -l

যা তারপর কোন প্রদান করবে। শুধুমাত্র লাইন।


যদি আপনি চান লাইন সংখ্যা (এবং লাইন সংখ্যা এবং মূঢ় ফাইল নাম ফিরে আসছে না):

wc -l < /filepath/filename.ext

পূর্বে উল্লিখিত এই কাজ এছাড়াও (কিন্তু অন্যান্য কারণে নিম্নতর):

awk 'END{print NR}' file       # not on all unixes
sed -n '$=' file               # (GNU sed) also not on all unixes
grep -c ".*" file              # overkill and probably also slower

সব লাইন ব্যবহার গণনা:

$ wc -l file

প্যাটার্ন ব্যবহার সঙ্গে শুধুমাত্র লাইন ফিল্টার এবং গণনা:

$ grep -w "pattern" -c file  

অথবা ম্যাচটি বিপর্যস্ত করতে -v ব্যবহার করুন:

$ grep -w "pattern" -c -v file 

G-man, -i এবং -x arg args দেখার জন্য grep ম্যান পৃষ্ঠা দেখুন ...


wc ব্যবহার করুন:

wc -l <filename>

এটি <filename> লাইনগুলির সংখ্যা আউটপুট করবে:

$ wc -l /dir/file.txt
3272485 /dir/file.txt

অথবা, ফলাফল থেকে <filename> বাদ দিতে wc -l < <filename> :

$ wc -l < /dir/file.txt
3272485

এছাড়াও আপনি wc তথ্য পাইপ করতে পারেন:

$ cat /dir/file.txt | wc -l
3272485
$ curl yahoo.com --silent | wc -l
63

cat file.log | wc -l | grep -oE '\d+'
  • grep -oE '\d+' : শুধুমাত্র সংখ্যা সংখ্যা ফেরত দিতে।

wc -l file.txt | cut -f3 -d" "

শুধুমাত্র লাইন সংখ্যা প্রদান করে







scripting