ফাইলগুলি ফিল্টার করতে ব্যবহৃত ওয়াইল্ডকার্ডগুলির থেকে নিয়মিত ভাবগুলি কীভাবে আলাদা হয়


15

আমরা *শূন্য বা আরও আগের অক্ষরগুলিকে বোঝাতে grepব্যবহার করি, আমরা *.cযখন সমস্ত ক সি ফাইল পছন্দ করি তেমনি lsকমান্ড দিয়ে ব্যবহার করি ls *.c। কেউ বলতে পারেন কীভাবে *এই দুটি ক্ষেত্রে ব্যবহারের পার্থক্য রয়েছে?

উত্তর:


30

শেল ফাইলের নাম গ্লোব্বিং এবং নিয়মিত প্রকাশগুলি একই অক্ষরগুলির কয়েকটি ব্যবহার করে এবং এগুলির একই উদ্দেশ্য রয়েছে তবে আপনি ঠিক বলেছেন, তারা সামঞ্জস্যপূর্ণ নয়। ফাইলের নাম গ্লোববিং অনেক কম শক্তিশালী সিস্টেম।

ফাইলের নাম গ্লোববিং:

  • * এর অর্থ "শূন্য বা আরও বেশি অক্ষর"

  • ? অর্থ "যে কোনও একক চরিত্র"

তবে রেজিজেসে আপনাকে .*"শূন্য বা আরও বেশি অক্ষর" বোঝাতে হবে এবং এর .অর্থ "কোনও একক অক্ষর"। ?রেজিজেসগুলির মধ্যে একটি অর্থ কিছুটা আলাদা: শূন্য বা পূর্ববর্তী আরই উপাদানটির একটি উদাহরণ।

স্কয়ার বন্ধনী ( []) কমপক্ষে সহজ ক্ষেত্রে, আমি যে সিস্টেমে এটি টাইপ করছি তার উভয় সিস্টেমে একই রকম কাজ করতে দেখা যায়। এর মধ্যে পসিক্স অক্ষর শ্রেণীর মতো জিনিস অন্তর্ভুক্ত থাকে (যেমন [:alpha:])। এটি বলেছে, যদি আপনার বিভিন্ন কমান্ড সিস্টেমের ধরণের কাজ করার জন্য আপনার কমান্ডগুলির প্রয়োজন হয় তবে আমি প্রাথমিক জিনিসগুলির বাইরে যেমন অক্ষরের তালিকা (উদাহরণস্বরূপ [abeq]) এবং সম্ভবত চরিত্রের ব্যাপ্তি (উদাঃ [a-c]) ব্যবহার করার বিরুদ্ধে পরামর্শ দিই ।

এই পার্থক্যগুলির অর্থ দুটি সিস্টেম কেবলমাত্র সাধারণ ক্ষেত্রে সরাসরি বিনিময়যোগ্য। আপনার যদি ফাইলের নামের সাথে মিলে যাওয়া দরকার তবে আপনার এটি অন্যভাবে করা দরকার। find -regexএকটি বিকল্প। (লক্ষ্য করুন যে find -name, উপায় দ্বারা, যা গ্লোব সিনট্যাক্স ব্যবহার করে))


2
আমি জানি না এটি গ্লোববিং বলা হয়েছিল :)
ব্যবহারকারীর 3539

3
এছাড়াও, রেগেক্সের বিভিন্ন স্বাদ রয়েছে। সমস্ত রেইজেক্স একই তৈরি হয় না! এবং আপনার অনেকগুলি প্যাটার্ন মেলানো সিস্টেম রয়েছে যেমন এসকিউএল লাইক , এর '%'অর্থ '*'
মিস্টার লিস্টার

4
রেজিএক্সপেক্সের দুটি প্রধান স্বাদ হ'ল পসিক্স এবং পিসিআরই (পার্ল সামঞ্জস্যপূর্ণ আরই)। পরেরটি কম দীর্ঘায়িত এবং এর আরও কিছু বৈশিষ্ট্য রয়েছে। ইউনিক্স সরঞ্জাম এবং শেলগুলি সাধারণত পসিক্স ব্যবহার করে, বেশিরভাগ প্রোগ্রামিংয়ের ভাষা অন্তর্নির্মিত রিজেক্সপস (শেল ব্যতীত) পিসিআরই ব্যবহার করে। আপনি অন-লাইনে উপাদান যখন পড়ছেন তখন কেবল তফাত থেকে সাবধান থাকুন।
গোল্ডিলোকস

11

মূল শিরোনামে প্রকাশিত প্রশ্নের উত্তর:

নিয়মিত এক্সপ্রেশন ফাইল ফিল্টার করতে ব্যবহৃত থেকে আলাদা হয় কেন ?

ফাইল নাম সম্প্রসারণ নিয়মিত প্রকাশের পূর্বাভাস দেয়, ইতিমধ্যে বেশিরভাগ অপারেটিং সিস্টেম (ওয়াইল্ডকার্ড / জোকার অক্ষর) এর সাথে বিদ্যমান এবং এটি পরবর্তীকালের চেয়ে অনেক সহজ এবং স্বজ্ঞাত।

যদিও *.txtসহজে নৈমিত্তিক ব্যবহারকারীদের দ্বারা বোধগম্য, অনুরূপ .*\.txtঅন্য কিছু আছে, অভিজ্ঞ ব্যবহারকারীদের / প্রোগ্রামারদের লক্ষ্য উল্লেখ না ^.*\.txt$...


2
"কেন" অংশের জন্য আরেকটি কারণ: গতি। নিয়মিত প্রকাশগুলি ধীর হয়: পেস্টবিন.
com

3
*.txtসমান হয় না .*\.txt, এটি (বেশিরভাগ) সমান হয় .*\.txt$কারণ এর পরে কিছুই থাকতে পারে না .txt(কমপক্ষে যুক্তিসঙ্গত ফাইলের নাম গ্লোববিং ধরে নেওয়া)। সম্ভবত ^.*\.txt$কিছুটা ব্যবহারের উপর নির্ভর করে। আপনার বক্তব্য প্রমাণ করে?
একটি সিভিএন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.