কীভাবে কম সময়ে মাল্টলাইন অনুসন্ধান করা যায়?


18

ইন less, আপনি /কোনও প্যাটার্নটি ব্যবহার করে অনুসন্ধান করতে পারেন যা গাড়ীর ফেরত এবং নিউলাইন রয়েছে? আমি জানি যে আপনার প্যাটার্নটি কোনও লাইন দিয়ে শেষ হতে পারে $( কীভাবে আমি কীভাবে সন্ধানে নতুন লাইনের অন্তর্ভুক্ত করব? ) তবে একাধিক লাইনের বিস্তৃত পাঠ্যের সাথে আমার প্যাটার্নটি দরকার।

আমি চেষ্টা করেছি \n, তবে এটি কেবল nচরিত্রটি অনুসন্ধান করে ।


আপনি কি \n+1 বা আরও নতুন লাইনের জন্য চেষ্টা করেছেন?
ব্রুক হেনসলে

কোন লিনাক্স বিতরণ, এবং আপনি পরিবেশ পরিবর্তনশীল "LESS" সংজ্ঞায়িত করেছেন?
harrymc

@harrymc কীভাবে মাল্টলাইন অনুসন্ধানে সহায়তা করবে?
সাশোম

তথ্য সংগ্রহের.
harrymc

2
less( search.c:search_range()) এর উত্স কোডের পর্যালোচনার ভিত্তিতে এটি সম্ভব নয় । অনুসন্ধান / ম্যাচ ক্রিয়াকলাপটি একবারে একক নতুন লাইন-বিস্মৃত লাইনে করা হয়, সুতরাং আপনি লাইন সীমানা জুড়ে মেলাতে পারবেন না। line.c:forw_raw_line()"রিডলাইন" রূপায়িত হিসাবে বাস্তবায়নের জন্য দেখুন search_range
জ্যাক্স

উত্তর:


7

লাইন সীমানা পেরিয়ে মেলা সম্ভব নয়, কারণ অনুসন্ধানের কাজটি lessএকক সময়ে একক নিউলাইন-বিস্মৃত লাইনে পরিচালিত হয়। সিস্টেম রেজেক্স বাস্তবায়ন (জিএনইউ, পোসিক্স, পিসিআরই, ইত্যাদি) নির্বিশেষে এটি কেস।

দয়া করে মনে রাখবেন যে আমি এর মূললাইন বিকাশের জন্য একটি সরকারী উত্স সংগ্রহস্থল খুঁজে পাইনি less, তবে কোড পর্যালোচনা করার উদ্দেশ্যে এখানে অনুসরণ করা লিঙ্কগুলি ফ্রিবিএসডি অবদান গাছের are

দেখুন search.c: অনুসন্ধান_ব্যাপ্তি () তল্লাশি অভিযান বাস্তবায়নের। এর মধ্যে লুপটি লাইন.একে কল করে: ফরও_রাও_লাইন () পরবর্তী কন্টেন্টের নূতন রেখাঙ্কিত ব্লক পুনরুদ্ধার করতে। এই ব্লকটি ম্যাচ.এর জন্য পাস করা হয়েছে: ম্যাচ_প্যাটার্ন () যেখানে অনুসন্ধানের প্যাটার্ন (নিয়মিত প্রকাশ) কার্যকর করা হয়।

একাধিক লাইন জুড়ে মেলাতে, আপনাকে একটি আলাদা সরঞ্জাম ব্যবহার করতে হবে। একটি বিকল্প হ'ল আপনার সম্পাদককে ছেড়ে দেওয়া এবং এটির অনুসন্ধানের ক্ষমতাগুলি অন্যদের পরামর্শ অনুযায়ী ব্যবহার করা। আপনি টিপে সম্পাদক ডাকা যাবে vমধ্যে less


2

এটি কীভাবে করবেন তা নিশ্চিত নন less, তবে আপনি একইটি সম্পন্ন করতে পারবেন vim

http://vim.wikia.com/wiki/Search_across_multiple_lines

/PATTERN1\\_.\\{-}PATTERN2

পরমাণু \\_.লাইন-এর শেষ প্রান্ত সহ যে কোনও অক্ষর খুঁজে পায়। মাল্টি \\{-}যতটা সম্ভব ম্যাচ।


1
এটি প্রশ্নের কম উত্তর দেয় না, যেহেতু এটি প্রায় কম, ভিম নয়। এটি একটি মন্তব্য করা উচিত।
সাশোম

1
@ সাশোম এটি এখনও উত্তর দেওয়ার প্রয়াস, তাই আমি এটিকে ভোট দিয়েছি এবং এগিয়ে চলেছি। সমাধানের সন্ধানকারী লোকেরা বিশেষত একটি সরঞ্জাম ব্যবহার করতে বাধ্য হতে পারে না।
22-15

2

lessedরিজেক্স সিনট্যাক্স ব্যবহার করছে এবং এটি দুর্ভাগ্যক্রমে মাল্টলাইন মিলাকে সমর্থন করে না।

https://www.gnu.org/software/gnulib/manual/html_node/ed-regular-expression-syntax.html#ed-regular-expression-syntax

আমি এটিও খুঁজে পেতে আশা করছিলাম, বা কমপক্ষে এই সিনট্যাক্স বিটটি ব্যবহার করা হয়েছে কিনা তা খুঁজে বার করুন less:

RE_DOT_NEWLINE যদি এই বিটটি সেট করা থাকে, তবে ম্যাচ-কোনও-অক্ষর অপারেটর একটি নতুন লাইনের সাথে মেলে; যদি এই বিটটি সেট না করা থাকে, তবে তা হয় না।

সুতরাং আমি .+নতুন লাইনের সাথে মেলে প্যাটার্নটি ব্যবহার করতে পারি । তবে না, তা হয় না।

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