এর জন্য সঠিক বাক্য গঠন কী:
find . -type f -name \*.\(shtml\|css\)
এটি কাজ করে তবে অযোগ্য leg
find . -type f -name \*.shtml > f.txt && find . -type f -name \*.css >> f.txt
কীভাবে একই কাজ করা যায় তবে কী কী স্ট্রোক কম হয়?
এর জন্য সঠিক বাক্য গঠন কী:
find . -type f -name \*.\(shtml\|css\)
এটি কাজ করে তবে অযোগ্য leg
find . -type f -name \*.shtml > f.txt && find . -type f -name \*.css >> f.txt
কীভাবে একই কাজ করা যায় তবে কী কী স্ট্রোক কম হয়?
উত্তর:
লজিকাল অপারেটরগুলির সাথে আপনি বিভিন্ন অনুসন্ধান এক্সপ্রেশনকে একত্রিত করতে পারেন -or
বা -and
যাতে আপনার কেস হিসাবে লেখা যায়
find . -type f \( -name "*.shtml" -or -name "*.css" \)
এটিও দেখায় যে আপনি উদ্ধৃতি ব্যবহার করার সময় বিশেষ শেল অক্ষরগুলি এড়িয়ে চলার দরকার নেই।
সম্পাদন করা
যেহেতু ক্রিসের পরামর্শ অনুসারে প্রথম -or
বন্ধনের -and
মধ্যে -type
প্রথম -name
অংশের নাম বন্ধনীর মধ্যে অন্তর্ভুক্ত এবং তার চেয়ে কম অগ্রাধিকার রয়েছে ।
). Second, the parentheses need to go around whole ‘primaries’ (the open parenthesis needs to be before
.ssss ' ' -name` এর মতো, এটির এবং এর' অপারেন্ড 'এর মধ্যে নয়)।
আপনার প্রথম সংস্করণটি করার একটি উপায় এখানে রয়েছে:
find -type f -regex ".*/.*\.\(shtml\|css\)"
আমি প্রায়শই নিজেকে আরও বেশি জটিল ফিল্টারগুলির জন্য egrep বা লম্বা পাইপ বা পার্ল ব্যবহার করে শেষ করতে দেখি:
find . -type f | egrep '\.(shtml|css)$'
find . -type f | perl -lne '/\.shtml|\.css|page\d+\.html$/ and print'
এটি কিছুটা কম দক্ষ হতে পারে তবে এটি সাধারণত উদ্বেগের বিষয় নয় এবং আরও জটিল স্টাফের জন্য এটি নির্মাণ এবং সংশোধন করা সাধারণত সহজ।
স্ট্যান্ডার্ড ক্যাভিয়েটটি অদ্ভুত ফাইল নামগুলির সাথে ফাইলগুলির জন্য এটি ব্যবহার না করা সম্পর্কে প্রয়োগ করে (যেমন নিউলাইনগুলি ধারণ করে)।