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


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.