সেড ব্যবহার করে বিন্দুর সাথে অঙ্কগুলি কীভাবে মেলে?


75

আমি sedঅঙ্কগুলি সহ সমস্ত নিদর্শনগুলি বিকল্পের সাথে সাথে খালি স্ট্রিংয়ের সাথে সাথে বিন্দু (যেমন 3., 355.) এর সাথে সাথে ব্যবহার করার চেষ্টা করছি । সুতরাং আমি চেষ্টা:

sed 's/\d+\.//g' file.txt

কিন্তু এটি কাজ করে না। কেন এমন?


1
আমি এই নিবন্ধটি খুব দরকারী হিসাবে পেয়েছি
স্টাফেন

উত্তর:


110

যেহেতু সেড পার্ল নয় - সেড রেজেক্সগুলির \dশর্টহ্যান্ড নেই:

sed 's/[[:digit:]]\+\.//g'

এখানে নিয়মিত প্রকাশের ডকুমেন্টেশন ।


3
যদি আপনি শূন্য বা আরও বেশি সংখ্যা চান। /[[:digit:]]*\. /স্ট্রিংটি মিলবে foo.কারণ আপনি শূন্য অঙ্কের জন্য অনুমতি দিন। আপনি যদি দেখানো হিসাবে এক বা একাধিক ব্যবহার করতে চান\+
গ্লেন জ্যাকম্যান

71

দুটি সমস্যা:

  1. sedসমর্থন করে না \d। ব্যবহার করুন [0-9]বা [[:digit:]]

  2. +বিশেষ অর্থ পেতে backslashed হবে: \+


6
ব্যাকস্ল্যাশিংয়ের পরিবর্তে + (যা ম্যাক ওএস এক্সে কাজ করে না, উদাহরণস্বরূপ) আপনি interpret regular expressions as extended (modern) regular expressions rather than basic regular expressions (BRE's).দুঃখের সাথে -E বিকল্পটি ব্যবহার করতে পারেন, এটি issue d ইস্যুতে সহায়তা করে না ...
gMale

4
@ গ্যামেল: -Eজিএনইউ সিডের জন্য কাজ করে না, এটি -rপরিবর্তে ব্যবহার করে।
চোরোবা

12
ঠিক আছে ... এটি নিশ্চিতভাবে দেখে মনে হচ্ছে যে sedএটি পোর্টেবিলিটি করার সময় ঠিক
আইকনোক্লাস্ট

@ ছোটোবা আমার মনে হয় আমি আজ নিজেকে বিভ্রান্ত করেছি। আমি আমার গোলমাল মন্তব্য মুছতে চলেছি ...
স্টিভেন লু

মূলত, আমি যা সম্পর্কে লোকদের সতর্ক করার চেষ্টা করছিলাম তা হ'ল: আপনি যদি -Eবিএসডি সেডে বর্ধিত রেজেক্স ( BSD সেড এবং -rজিএনইউ সেডে) ব্যবহার না করেন, +না হয় \+(একই সাথে ?) মোটেই কাজ করবে না, তবে জিএনইউ সেডে আপনি পারবেন তাদের ব্যাকস্ল্যাশ দিয়ে কাজ করতে দিন। সুতরাং স্ক্রিপ্টিংয়ে এক্সটেন্ডেড রেজেক্স ব্যবহারের সাধারণ পরামর্শ
স্টিভেন লু

3

সেড ম্যান পৃষ্ঠাটি পুনরায় ফর্ম্যাট ম্যান পৃষ্ঠাটি উল্লেখ করে। এটি 2 স্বতন্ত্রতা তৈরি করে: (1) অচলিত বনাম বর্ধিত নিয়মিত প্রকাশ; (2) অ বর্ধিত বনাম বর্ধিত নিয়মিত অভিব্যক্তি। সমস্ত 4 সংমিশ্রণ সম্ভব। অপ্রচলিত এবং বর্ধিত উভয়ের জন্য সেডে সমর্থন রয়েছে তবে উভয় ক্ষেত্রে কেবল অ-বর্ধিত for Operator d অপারেটর বর্ধিত নিয়মিত এক্সপ্রেশনগুলির একটি বৈশিষ্ট্য, সুতরাং সেড দ্বারা সমর্থিত নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.