আমি একাধিক ফাইলে শব্দ গণনা কীভাবে তালিকাবদ্ধ করব?


9

বলুন যে আমার প্রতিটি ফাইলের মধ্যে 'ওয়ার্ক' শব্দটি রয়েছে তার মধ্যে কতগুলি শব্দ রয়েছে তা খুঁজে বের করতে হবে।

আমি জানি যে এতে 'কাজ' সহ ফাইলগুলি সন্ধান করতে হবে ls work। এবং শব্দের সংখ্যাটি বের করতে এটি হবেwc -w

তবে আমি এটি চেষ্টা করেছি এবং মনে হচ্ছে এটি কেবল ফাইলের সংখ্যা প্রদর্শন করছে, সমস্ত ফাইলে সংযুক্ত শব্দের সংখ্যা নয় (যা আমার প্রয়োজন):

ls work | wc -w

সুতরাং বলুন যে যদি এখানে 14 টি ফাইল রয়েছে যা 'ওয়ার্ক' পূর্বশর্ত অনুসরণ করে তবে এটি 14 টি প্রদর্শিত হবে, শব্দের সংখ্যা নয়।

উত্তর:


17

বাক্য গঠনটি হ'ল wc -w [FILE]। আপনি যদি ফাইলটি না ব্যবহার করেন তবে পাইপ ls workএটির আউটপুটগুলিতে কেবল স্ট্যান্ডিনে কী পড়বে তা গণনা করবে।

আপনাকে পাঠ্যে নিজেই পাইপ করতে হবে:

cat *work* | wc -w

বিকল্প আপনি wcসাথে চালানো যেতে পারে find -exec। তবে সচেতন হোন যে এখানে প্রচুর ফাইল থাকলে একাধিক "মোট" যোগফলগুলি একাধিকবার findকল wcকরতে পারে।

find ./ -type f -name "*work*" -exec wc -w {} +

আমি findকমান্ডটি ব্যবহার করে লাইনের গণনাও যোগ করতে সক্ষম হব wc -l। অ্যামেজিং!
কোডি কোডস

3

আপনি wcএকাধিক ফাইলের সাথে চালাতে পারেন এবং তারপরে শেল্ট বিল্ট-ইন ব্যবহার করতে পারেন *যা ওয়ার্কিং ডিরেক্টরিতে থাকা প্রতিটি অ লুকানো ফাইলের wcপ্যারামিটারগুলিতে যুক্ত করে।

wc -w *work*

যদি কোনও ডিরেক্টরিটির নাম থাকে workতবে এটির সাথে একটি আউটপুটও প্রদর্শিত 2>/dev/nullহবে..এ হ্যাকটি এসটিডিআরআর পুনর্নির্দেশ করা হবে find.. আপনার কেবলমাত্র ফাইলগুলি পাওয়ার মতো কিছু ব্যবহার করা উচিত ..
হিমাইল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.