শেল কীভাবে ডির নীচে এবং নীচে প্রতিটি নিয়মিত ফাইলের কমান্ড ব্যবহার করবেন


0

তাই আমি কি করতে হবে ডিরেক্টরির মধ্যে এবং নীচের সব নিয়মিত ফাইল খুঁজে। এই নিয়মিত ফাইলের প্রত্যেকটির জন্য, আমাকে প্যাটার্ন ($ এআরজি) জন্য উদাহরণ দিতে হবে এবং ফাইলটির আউটপুটটি প্যাটার্ন ($ এআরজি) সাথে মিলবে কিনা তা খুঁজে বের করতে হবে, এটি যদি এটি কাউন্টারে যোগ করে তবে তা হবে।

আমি এখন পর্যন্ত কি ফাইল কমান্ড:

$count = 0
file *

যাইহোক, আমি egrep & ARG & gt; পেতে সমস্যা হচ্ছে। / dev / null /; $ echo? (ফাইল *) থেকে প্রদর্শিত প্রতিটি ফাইল চালানোর জন্য।

আমি যে ফাইল * | বুঝতে egrep ডিরেক্টরি & gt; / dev / null; $ echo? আউটপুট 0 কারণ এটি ফাইলের প্যাটার্ন 'ডিরেক্টরী' খুঁজে পাবে, তবে এটি প্রতিটি নিয়মিত ফাইলের মাধ্যমে লুপে পেতে সমস্যা হচ্ছে তাই আমি প্রতিটি সময় প্যাটার্ন মিললে কাউন্টারে যোগ করতে পারি।


1
আপনি কেবলমাত্র প্যাটার্ন ধারণকারী ফাইলগুলি গণনা করতে চান তবে নিম্নলিখিতটি এটি দেখাবে: find -type f -print0|xargs -0 egrep -l ...|wc -l, কোথায় ... আপনি পাস করতে চান পরামিতি তালিকা egrep। এটি বর্তমান ডিরেক্টরি এবং নীচের সমস্ত স্ট্যান্ডার্ড ফাইল খুঁজে পায় এবং এই তালিকাটির জন্য একটি ফাইল তালিকাতে নির্মিত হয় egrep -l, যা ম্যাচ প্যাটার্ন ধারণকারী কোনও ফাইলের নাম দেখায় এবং ফাইলগুলির সংখ্যা গণনা করে wc -l
AFH

আপনার প্রশ্ন খুব বিভ্রান্তিকর, আপনি এটা rewording মনে হবে? আপনি কি অর্জন করতে ইচ্ছুক file *? file তার আর্গুমেন্ট নির্দিষ্ট ফাইল (গুলি) টাইপ। আপনি এই সঙ্গে কি মনস্থ করা? @ এএফএইচ উপরে বর্ণিত যেহেতু, একটি ডিরেক্টরির মধ্যে সব ফাইল পাওয়ার জন্য সেরা হাতিয়ার find
Ziggy Crueltyfree Zeitgeister

উত্তর:


0

আমি এই আপনি চান কি করতে হবে। মূলত, এটি ডিরেক্টরি এবং নীচের সমস্ত ফাইলের একটি তালিকা তৈরি করে; তারপর তাদের স্ক্যান, কোন হিট ফাইল নাম মুদ্রণ; তারপর এটি কত ফাইল নাম ফিরে পাওয়া যায়।

count=$(egrep -l "$ARG" $(find . -type f) | wc -l)

এটি সম্ভব যে অনুসন্ধানটি অনেকগুলি ফাইল ফিরিয়ে দেবে (আপনি ত্রুটি পাবেন, "আর্গুমেন্ট তালিকাটি খুব দীর্ঘ")। এই ক্ষেত্রে, এই ধীর, কিন্তু নিশ্চিত পদ্ধতির কাজ করবে:

count=$(find . -type f -exec egrep -l "$ARG" {} \; | wc -l)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.