আমি কীভাবে কোনও ফাইল থেকে একাধিক কীওয়ার্ড গ্রিপ করব?


3

আমি এক কমান্ড লাইনের ফাইল থেকে একাধিক লাইন (বিভিন্ন কীওয়ার্ড সহ) টানতে ইউনিক্সের গ্রেপ ফাংশনটি ব্যবহার করতে চাই ।

উদাহরণস্বরূপ, আমার মতো কিছু রয়েছে:

doc-A1-151
file-A2-15646
table-A3-1654
file-B1-15654
doc-B2-15654
table-B3-13546
file-C1-164654
doc-C2-16354
table-C3-13565

এবং আমি ঠিক A1, B3 এবং C2 লাইন দিয়ে ফাইলটির একটি উপ-সংস্করণ চাই।

আমি কেমন করে ঐটি করি?


এই পোস্টটি একবার দেখুন: theunixshell.blogspot.com/2014/03/…
বিজয়

উত্তর:


6

গ্রেপ আপনাকে -Eপতাকা ব্যবহার করে ফাইলের মধ্যে নিদর্শনগুলি মেলে নিয়মিত এক্সপ্রেশনগুলি ব্যবহার করতে দেয় , বা আপনি যে egrepকমান্ডটি সমান এটি ব্যবহার করতে পারেন grep -E:

grep -E 'A1|B3|C2' filename

অথবা

egrep 'A1|B3|C2' filename

উল্লম্ব দণ্ডটি |হ'ল OR অপারেটর মানে ম্যাচ স্ট্রিং এ 1 বা বি 3 বা সি 2।

নিয়মিত প্রকাশের বাক্য গঠনটি সরঞ্জাম থেকে সরঞ্জামে পরিবর্তিত হয়, তবে সাধারণত বাক্য গঠন একই হয়। এখানে রুবীর জন্য একটি রেজেক্স পরীক্ষার জোতা যা আমি নিয়মিত অভিব্যক্তি পরীক্ষা করতে এবং তৈরি করতে ঘন ঘন ব্যবহার করি: http://rubular.com/r/mJyIMO5hJN

যাইহোক, নিয়মিত অভিব্যক্তিগুলির যে কোনও পরিচয় হ'ল একটি সতর্কতা সহ প্রেরণা দেওয়া উচিত যে সেগুলি তাদের সক্ষমতা সীমাবদ্ধ এবং প্রবন্ধটি হ'ল:

কিছু লোক, যখন কোনও সমস্যার মুখোমুখি হয়, তখন "আমি জানি, আমি নিয়মিত অভিব্যক্তি ব্যবহার করব" think এখন তারা দুটি সমস্যা আছে।


6

এটি পেয়েছি। নতুন লাইন দ্বারা পৃথক একটি পাঠ্য ফাইলে শর্তাবলী রাখুন, তারপরে -fপতাকাটির সাথে মিলের প্যাটার্ন হিসাবে এটি প্রবেশ করান ।

pattern_file.txt:

A1
B3
C2

COMMAND:

grep -f pattern_file.txt input_file.txt

, grep -i -f <(প্রতিধ্বনি বস্টন; আবির্ভাব প্রতিধ্বনি; প্রতিধ্বনি গীতা) কাজ করে কিন্তু, প্রতিটি যুক্তি echo হিসেবে আমার উদাহরণে দেখা যায়, একটি পৃথক Regex হতে হবে
marinara
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.