linux - Grep ব্যবহার করে এটিতে একটি বিন্দু রয়েছে এমন একটি স্ট্রিং অনুসন্ধান করতে




(6)

আপনি "[।]" ব্যবহার করতে পারেন

grep -r "0[.]49"

আমি কমান্ড ব্যবহার করে একটি স্ট্রিং 0.49 (বিন্দু সহ) অনুসন্ধান করার চেষ্টা করছি

grep -r "0.49" *

কিন্তু কি হচ্ছে যে আমি অবাঞ্ছিত ফলাফলও পেয়েছি যার মধ্যে রয়েছে 0449 , 0949 ইত্যাদি স্ট্রিং। জিনিসটি কোন অক্ষর হিসাবে ডট (।) বিবেচনা এবং সমস্ত ফলাফল আনয়ন linux হয়। কিন্তু আমি শুধুমাত্র "0.49" এর জন্য ফলাফল পেতে চাই।


আপনি অব্যাহতি প্রয়োজন . হিসাবে "0\.49"

. একটি অক্ষর মেটা অক্ষর কোনো অক্ষর মেলে (নতুন লাইন ছাড়া)। একটি আক্ষরিক সময়ের সাথে মেলে, আপনি এটি পালাতে হবে।


এখানে অনেকগুলি উত্তর আছে যা ডটকে এড়িয়ে যাওয়ার পরামর্শ দিচ্ছে \. কিন্তু আমি আবার ওভার এই সমস্যা মধ্যে চলমান হয়েছে: \. আমাকে একই ফলাফল দেয় .

যাইহোক, এই দুটি এক্সপ্রেশন আমার জন্য কাজ করে:

$ grep -r 0\\.49 *

এবং:

$ grep -r 0[.]49 *

আমি উবুন্টু এবং আর্চলিন্সে একটি "স্বাভাবিক" ব্যাশ শেল ব্যবহার করছি।


এসপ্ট ডট। নমুনা কমান্ড হতে হবে।

grep '0\.00'

grep -F -r '0.49' * নিয়মিত প্রকাশের পরিবর্তে 0.49 টি "স্থির" স্ট্রিং হিসাবে আচরণ করে। এই তোলে . তার বিশেষ অর্থ হারান।


grep regexes ব্যবহার করে; . একটি regex মধ্যে "কোন চরিত্র" মানে। যদি আপনি একটি আক্ষরিক স্ট্রিং চান, grep -F , fgrep , বা অব্যাহতি ব্যবহার করুন . যাও \.

ডবল কোট আপনার স্ট্রিং মোড়ানো ভুলবেন না। অন্যথায় আপনি \\. ব্যবহার করা উচিত \\.







grep