ম্যাক ওএস এক্স-এ এমন কোনও কমান্ড রয়েছে যা মাল্টলাইন রেজেক্স অনুসন্ধান করতে পারে?


12

আমি একটি সাধারণ রেইজেক্স অনুসন্ধান পুনরাবৃত্তভাবে একটি ডিরেক্টরিতে সীমাবদ্ধ নয় এমন ডিরেক্টরিতে চাই।

আমি গ্রেপ এবং এসকে চেষ্টা করেছি, তবে উভয়ই এটিকে সমর্থন করে না বলে মনে হয়।

আমি জানি এটি খুব কম কম্পিউটেশনাল ব্যয়বহুল হওয়া উচিত নয় (আমার ক্ষেত্রে) কারণ আমার পছন্দের পাঠ্য সম্পাদক ( সাব্লাইম টেক্সট ) এটি ঠিকঠাক করতে পারে।

আমি কেবল এটির একটি সাধারণ কমান্ড-লাইন সংস্করণ খুঁজছি। গুগল প্যাকগ্রিপ তৈরি করেছে , তবে আমি ম্যাকের জন্য এটি খুঁজে পাচ্ছি না। আমি কি ঠিক জায়গায় খুঁজছি না?


1
আপনি যা খুঁজছেন তার উদাহরণ দেওয়া সহায়ক হবে। এবং grepপ্রসঙ্গের সাহায্যে আপনি কী চান তা খুঁজে পেতে সহায়তা করে ( -C1)?
এমবিবি

উত্তর:


15

হোমব্রিউ এবং তারপরে ইনস্টল করুন:

brew install pcre

এটি আপনাকে সর্বশেষ দেবে pcregrep


1

আপনি ঠিক কী খুঁজছেন তা আপনি বলেন নি তাই ফাইলটি 112 এর পরে রয়েছে 223 এর পরে, নতুন লাইনের উপেক্ষা করে তা খুঁজে বের করার জন্য আমি টাস্কটি কল্পনা করব।

কিছুটা স্বল্প awkসমাধান:

awk -vRS='' '/112.*223/ { print "found it"; exit }' file.in

RSপরিবর্তনশীল রেকর্ড বিভাজক ধারণ করে। খালি স্ট্রিং এ সেট করে, পুরো ফাইলটি একটি রেকর্ড হিসাবে পঠিত হবে।

এটি সম্ভবত বড় ফাইলগুলিতে খুব স্মৃতি অকার্যকর হবে।

যাইহোক, আমি ওপেনবিএসডি-তে এটি করছি, তবে ওএস এক্স এর পক্ষে একইভাবে কাজ করা উচিত।


আমি ওএস এক্স 10.11.2 এ আছি এবং "অজানা: অবৈধ
ভি

ওএস এক্সে আপনার vএবং এর মধ্যে একটি স্থান দরকার RS। যেমনawk -v RS='' '/112.*223/ { print "found it"; exit }' file.in
নীল

0

"pcregrep" একটি পুরানো স্থিতিশীল pcregrepএবং আরও নতুন উল্লেখ করতে পারে pcre2grep। উভয়ই পিসিআরই প্রকল্পে সরবরাহ করা হয়pcre.org

ম্যাক পোর্টস পূর্বের বন্দরের অংশ হিসাবে pcre(8.40 সংস্করণে স্থিতিশীল) সরবরাহ করে এবং পরেরটি বন্দরের অংশ হিসাবে pcre2(বর্তমানে সংস্করণ 10.22) সরবরাহ করে। এর মাধ্যমে ইনস্টল করুন:

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