ম্যাচের পরে এবং তার আগে 20 টি অক্ষর গ্রেপ করতে


15

আমার সমস্যাটি হ'ল ম্যাচের পরে আমি খুব বেশি তথ্য পাই

grep -RnisI --color=auto "pseudomonas" *

আমি ম্যাচের পরে এবং তার আগে কেবল 20 টি অক্ষর বা 10 শব্দের মতো পেতে চাই।

এ জাতীয় কাজ করার সঠিক সরঞ্জাম কী?


1
অতিরিক্ত তথ্য সম্পর্কে অভিযোগ করার সময় আপনার বিকল্পগুলির সেটটি কিছুটা অদ্ভুত। আপনি এক লাইন চান পরে এবং আগে আপনার জুটি প্রদর্শিত ( -A1এবং -B1রেস্প।), কিন্তু এটা খুব বেশী কি? আপনি কোথায় আপনার আউটপুট ক্রপ করতে চান?
আন্দ্রেয়াস উইজ

1
আপনি কি একটি উদাহরণ ইনপুট এবং যে আউটপুটটি আশা করছেন তা দিতে পারেন?
রমেশ

আমি কমান্ডটি পরিবর্তন করেছি, আমি উবুন্টু ১৩.১০ তে পরীক্ষা করেছি, এটি আপনার পক্ষে কাজ করে কিনা তা আমাকে জানান। আমার কাছে একটি গ্রেপ বিকল্প এবং একটি এগ্রিপ বিকল্প রয়েছে
এরিক

উত্তর:


24
cat file.txt | grep -o -P '.{0,20}string.{0,20}'

এটি আপনার জন্য এটি করা উচিত

হালনাগাদ:

আপনি যদি বিড়াল করতে চান না, আপনি কেবল পরামিতি হিসাবে ফাইল সহ গ্রেপ ব্যবহার করতে পারেন:

grep -o -P '.{0,20}pseudomonas.{0,20}' FileName.html

এছাড়াও, -পি পার্ল রেজেেক্স ব্যবহার করে যা ম্যান পেজগুলি পরীক্ষামূলক বলে জানিয়েছে, আপনি যদি এই পতাকাটি এড়াতে চান তবে আপনি কেবল এর পরিবর্তে এগ্রেপ ব্যবহার করতে পারেন:

grep -Eo '.{0,20}yourstring.{0,20}' yourtestfile.txt

আপনার কাছে কী কুরুচিপূর্ণ পরীক্ষার ফাইল রয়েছে;)
ওউকি

বাকী ফাইলটি প্রকৃতপক্ষে কার্যকর, এটি কোনও স্কিমের মাঝামাঝি একটি বহু-লাইন মন্তব্যের অংশ যা আমাদের পার্সার না ভেঙে বাদ দিতে হয়েছিল, এটি চেষ্টা করার জন্য এটি কেবল একটি ভাল লাইন ছিল।
এরিক

যেহেতু এটি আমার একটি ফাইল, এটি 75৫৫-এ সেট করা হয়েছে তবে আমি দেখতে পাচ্ছি যে বিড়াল কোনও HTML ফাইলের জন্য কীভাবে আদর্শ হতে পারে না, আপনি ফাইলের নামটিকে প্যারামিটার হিসাবে গ্রেপ করে দেওয়ার চেষ্টা করতে পারেন, আমার সম্পাদনা দেখুন।
এরিক

আমি বলতে চাইছি 7 777 টি ফাইল বলতে আপনার কাছে বিভিন্ন ফাইলের 7 777 টি অনুলিপি রয়েছে, ছোটাছুটি জিনিস নয়। আমি $$$ egrep -o 'চালাচ্ছি {0,20} সিউডোমোনাস {0,20 $$$' * $$$ $$$ কমান্ডটি সেখানে অনন্ত থাকে এবং কিছুই করে না। এটি আবার $$$ egrep -ori 'কাজ করে বলে মনে হচ্ছে {0,20} সিউডোমোনাস {0,20 $$$' * $$$ $$$ পুনরাবৃত্তি এবং কেস ইনসেটিসেটিভ একই। তবে এটি খুব ধীর। আমি মনে করি এটি এত ধীরে হওয়া উচিত নয়। গ্রেপ যথেষ্ট দ্রুত ছিল।
লিও লোপোল্ড হার্টজ

যদি ক্যাটিং কাজ না করে, আপনি সর্বদা > results.txtআপনার কমান্ডের শেষে যোগ করে কোনও ফাইলের মধ্যে রাখতে পারেন , তবে এটি আপনাকে কোন ফাইলটি খুঁজে পেয়েছে তা আপনাকে জানায় না
এরিক

4
pcregrep -MnirIso '(?s).{0,20}pseudomonas.{0,20}' . |
  grep --color -e '^' -e pseudomonas

ম্যাচগুলি ধরে নেয় এবং তাদের প্রসঙ্গটি ওভারল্যাপ হয় না এবং সেই ফাইলের নামগুলি এতে ধারণ করে না pseudomonas

এছাড়াও নোট করুন যে রিপোর্ট করা লাইন নম্বরগুলি প্রসঙ্গের শুরুতে।

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