পাওয়া ফাইলগুলির মোট লাইন সংখ্যা গণনা কিভাবে?


10

আমি find . -name patternকয়েকটি ফাইল সন্ধান করার জন্য একটি চালাচ্ছি এবং আমি এই ফাইলগুলিতে মোট লাইনের সংখ্যাটি মার্জিতভাবে পেতে চাই।

আমি কীভাবে এটি অর্জন করতে পারি?

উত্তর:


9

যদি আপনার সংস্করণ wcএবং findপ্রয়োজনীয় বিকল্পগুলি সমর্থন করে:

find . -name pattern -print0 | wc -l --files0-from=-

যা আপনাকে প্রতি-ফাইলের সংখ্যা এবং পাশাপাশি মোট দেবে। আপনি যদি কেবল মোটটি চান:

find . -name pattern -print0 | wc -l --files0-from=- | tail -n 1

এর সংস্করণগুলির জন্য অন্য একটি বিকল্প findএটি সমর্থন করে:

find . -name pattern -exec cat {} + | wc -l 

2
$ find . -name '*.txt' -exec cat '{}' \; | wc -l

প্রতিটি ফাইল নেয় এবং catসেগুলি নিয়ে যায়, তারপরে wcলাইনের কাউন্টিং মোডে সেট করে সেগুলি সমস্ত পাইপ দেয় ।

বা, [স্বাক্ষরিত] অদ্ভুত ফাইল নাম নিরাপদ:

$ find . -name '*.txt' -print0 | xargs -0 cat | wc -l

1

দুর্ভাগ্যক্রমে এর ফলাফল:

find . -iname "yourpattern" -exec cat '{}' \; |wc -l

অতিরিক্ত লাইন সন্নিবেশ করান। একটি নির্ভরযোগ্য লাইন গণনা পাওয়ার জন্য আপনার যা করা উচিত:

find . -name "yourpattern" -print0 | xargs -0 wc -l

এইভাবে আপনি স্পেসগুলি সঠিকভাবে পরিচালনা করেন, প্রতিটি ফাইলের জন্য একটি লাইন গণনা এবং মোট লাইন গণনা দ্রুত এবং শৈলীতে পান !!!


1
যেমন: সময় সন্ধান -নেম " .ম" -প্রান্ত বিড়াল '{}' \; | ডাব্লুসি-এল 4.878 এর মধ্যে চলে এবং লাইন গণনা হিসাবে 227847 ফেরত দেয়। তবে সময় খুঁজে। -name " .m" -print0 | xargs -0 wc -l 0.769 এর দশকে চলে এবং যথাযথ লাইন গণনা 126464 প্রদান করে।
— g24l

1

না খুঁজে পাওয়ার আরও একটি সহজ উপায়। একটি ফাইলের লাইন:

wc -l filename

উদাহরণ:

wc -l myfile.txt 

-1

অনির্ধারিত, তবে কীভাবে এমন কিছু সম্পর্কে:

cat `find . -name "searchterm" -print` | wc -l

এটি ফাঁকা স্থান বা অক্ষরগুলি যে গ্লোব্বিং ট্রিগার করে সেগুলি দিয়ে ভাল কাজ করবে না।
— কামিল ম্যাকিয়েরোস্কি

-2
wc -l `find -name filename`

দক্ষতার সাথে কাজ করবে।


… বা না, যদি পাথগুলিতে স্পেস বা অক্ষর থাকে যা গ্লোব্বিংয়ের সূত্রপাত করে।
— কামিল ম্যাকিয়েরোস্কি

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