প্রদত্ত পরিসরে রেখার দৈর্ঘ্যের জন্য "গ্রেপ" কীভাবে করবেন?


28

দ্রষ্টব্য: এই প্রশ্নটি এই প্রশ্নোত্তরের পরিপূরক: প্রদত্ত পরিসরে লাইন দৈর্ঘ্যের * নয় * কীভাবে "গ্রেপ" করবেন?


আমাকে একটি পাঠ্য ফাইল (কেবলমাত্র একটি ওয়ার্ডলিস্ট, নিউলাইন দিয়ে পৃথক করা) থেকে লাইনগুলি পাওয়া দরকার যার দৈর্ঘ্য ন্যূনতম বা 3 অক্ষরের সমান, তবে 10 এর চেয়ে বেশি বা সমান নয়।

উদাহরণ:

ইনপুট:

egyezményét
megkíván
ki
alma
kevesen
meghatározó

আউটপুট:

megkíván
alma
kevesen

প্রশ্ন: আমি কীভাবে এটি করতে পারি bash?


9
grep -x '.\{3,10\}'
কস্টাস

@ কাস্টাস উজ্জ্বল, এবং একইভাবে সেডের জন্যও যায়। একটি সম্পূর্ণ উত্তর পোস্ট করুন।
orion

উত্তর:


37
grep -x '.\{3,10\}'

কোথায়

  • -x পুরো লাইনে প্যাটার্ন মেলে
  • . কোন চিহ্ন
  • {3,10} পূর্ববর্তী প্রতীক থেকে 3 থেকে 10 গুণ পরিমাণ নির্ধারণ করুন (যে কোনও ক্ষেত্রে)

10

egrep ব্যবহার করে

egrep '^.{3,10}$'

3 বা ততোধিক অক্ষরের জন্য লাইন শেষ হতে 10 থেকে কম বা এর চেয়ে কম অক্ষরের সাথে মিল রয়েছে।


1

ব্যবহার sed:

sed '/^.\{3,10\}$/!d'

বা:

sed -r '/^.{3,10}$/!d'

0

ব্যবহার awk:

awk 'length >= 3 && length <= 10' file

lengthবিবৃতির দৈর্ঘ্য ফিরে আসবে $0ডিফল্টরূপে (বর্তমান রেকর্ড / লাইন), এবং খাসি লাইন এর দৈর্ঘ্য প্রদত্ত ব্যাপ্তির মধ্যে এই পরীক্ষাটি কোড দ্বারা ব্যবহৃত হয়। এর মতো পরীক্ষায় যদি কোনও সম্পর্কিত ক্রিয়াকলাপ না থাকে তবে ডিফল্ট ক্রিয়াটি রেকর্ডটি মুদ্রণ করা।

প্রদত্ত ডেটা পরীক্ষা করা:

$ awk 'length >= 3 && length <= 10' file
megkíván
alma
kevesen

পার্লের সাথে একইভাবে:

$ perl -lne '$l=length($_); print if ($l >= 3 && $l <= 10)' file
megkíván
alma
kevesen
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.