গ্রেপ দ্রুত তৈরি করতে একটি সূচক ব্যবহার করছেন?


10

আমি নিজেকে একই কোডবেস বারবার চেপে ধরতে দেখি। এটি দুর্দান্ত কাজ করার সময়, প্রতিটি কমান্ডের জন্য 10 সেকেন্ড সময় লাগে, তাই আমি এটিকে আরও দ্রুত করার উপায়গুলি সম্পর্কে ভাবছি।

তাই grepসূচি কিছু ধরণের ব্যবহার করতে পারেন? আমি বুঝতে পেরেছি একটি সূচক সম্ভবত জটিল রেজেক্সপসের জন্য সহায়তা করবে না, তবে আমি বেশিরভাগ সহজ সরল প্যাটার ব্যবহার করি। এই ক্ষেত্রে কি কোনও সূচক বিদ্যমান?

সম্পাদনা: আমি ctags এবং এর মত সম্পর্কে জানি, কিন্তু আমি সম্পূর্ণ পাঠ্য অনুসন্ধান করতে চাই।


আপনি কি গ্রেপ বা পুনরায় কিছু অনুসন্ধান / জার্গ্সের জন্য পুনরাবৃত্ত অপারেশন ব্যবহার করছেন?
মিশা łরাজের

@ মাইচাঃ হ্যাঁ, -আর
পেলটিয়ার

উত্তর:


4

সিস্কোপ সম্পর্কে কি , এটি আপনার জুতা মেলে?

এর জন্য অনুসন্ধানের কোডটিকে মঞ্জুরি দেয়:

  • একটি প্রতীক সমস্ত রেফারেন্স
  • গ্লোবাল সংজ্ঞা
  • একটি ফাংশন দ্বারা ডাকা ফাংশন
  • একটি ফাংশন কল ফাংশন
  • পাঠ্য স্ট্রিং
  • নিয়মিত অভিব্যক্তি প্যাটার্ন
  • একটি নথি
  • একটি ফাইল সহ ফাইল

আমি যা সন্ধান করছি এটি হতে পারে, আমি একবার দেখে নেব। ধন্যবাদ!
পেল্টিয়ার

দেখে মনে হচ্ছে এটা ঠিক সি, হয়তো সি ++ এবং জাভা জন্য ভাল কাজ করে
Neves

4

পূর্ণ-পাঠ্য সূচী

রিকোল , স্যুইশ -ই এবং স্ফিংস এর মতো সরঞ্জাম রয়েছে তবে আপনাকে যাচাই করতে হবে যে তারা আপনার প্রয়োজনীয় অনুসন্ধানের মানদণ্ডকে বাছাই করতে পারে কিনা।

Recoll

রিকোল ইউনিক্স / লিনাক্সের জন্য একটি ব্যক্তিগত পূর্ণ পাঠ্য অনুসন্ধান সরঞ্জাম।

ফিটফাট-ই

স্যুইশ-ই ওয়েব পৃষ্ঠাগুলি বা অন্যান্য ফাইলগুলির সংগ্রহের সূচিকরণের জন্য একটি দ্রুত, নমনীয় এবং বিনামূল্যে ওপেন সোর্স সিস্টেম।

স্পিংক্স

স্পিনেক্স আপনাকে ব্যাচ সূচক এবং এসকিউএল ডাটাবেস, নোএসকিউএল স্টোরেজ, বা কেবলমাত্র দ্রুত এবং সহজেই ফাইলগুলিতে সঞ্চিত ডেটা অনুসন্ধান করতে দেয়

, grep

আমি আশ্চর্য হয়েছি গ্রেপ আপনার বর্ণনা অনুসারে ধীর গতির, আপনি অনুসন্ধান করা ফাইলের সংখ্যা কমাতে পারবেন? উদাহরণস্বরূপ, যখন আমাকে কেবলমাত্র এক এক্সিকিউটেবলের জন্য উত্স ফাইলগুলি অনুসন্ধান করতে হবে (প্রকল্পের অনেকের মধ্যে) আমি সেই প্রোগ্রামের উত্স ফাইলগুলি তালিকাভুক্ত একটি কমান্ড থেকে গ্রেপ নামগুলি ফিড করি:

grep expression `sources myprogram`

sources আমার বিকাশের পরিবেশের জন্য নির্দিষ্ট একটি প্রোগ্রাম তবে আপনার কাছে সমমানের কিছু থাকতে পারে (বা নির্মাণ করতে সক্ষম হতে)।

আমি ধরে নিচ্ছি আপনি যেমন সুস্পষ্ট কৌশল চেষ্টা করেছেন

find /foo/myproject -name "*.c" -exec fgrep -l searchtext

আমি একটি পরামর্শ পড়েছি যে স্রোতের-P বিকল্পটি grepঅনুসন্ধানগুলিকে উল্লেখযোগ্যভাবে গতি দিতে পারে।


1
AFAIK অবস্থানটি কেবল ফাইলের জন্য for রিকোল কাজ করবে, তবে আমি একটি কমান্ড-লাইন সরঞ্জাম পছন্দ করব। কোড বেসটি বেশ বড়, এবং যেহেতু আমি একটি স্ট্রিং সন্ধান করছি, এটি কোথায় আছে তা আমি জানি না, তাই অনুসন্ধানের জন্য ফাইলগুলির সংখ্যা সীমাবদ্ধ করা কঠিন :) :)
পেলটিয়ার

আমি মনে করি swish-e হ'ল কমান্ড-লাইন। আমি কোনও চেষ্টা করি নি (
গ্রেপগুলি

3

গ্রেপ, না তবে বেশ কয়েকটি প্রোগ্রাম রয়েছে যা সূচিগুলি ব্যবহার করে এবং কোড বেসকে লক্ষ্য করে। ctags(এখানে ভিএম সহ একটি সংস্করণ সরবরাহ করা আছে), etags(ইমাস সহ ব্যবহারের উদ্দেশ্যে), global(সম্পাদকের চেয়ে আরও স্বতন্ত্র ) হ'ল আমি এখন যা ভাবছি তা সম্ভবত তবে অন্যগুলিও রয়েছে।


আমি ctags ব্যবহার করি, কিন্তু এটি কি ফাংশনটির নাম সন্ধানের মধ্যে সীমাবদ্ধ নয়? আমি পূর্ণ-পাঠ্য অনুসন্ধান করতে চাই।
পেলটিয়ার

আমি নিশ্চিত যে ctag ক্লাস সংজ্ঞা এবং আইআরটিএসের জন্য এটিরও কিছু ব্যবহার খুঁজে পেতে পারে search আমি নিশ্চিত যে গ্লোবাল দুটোই করে। তবে এটি সত্য যে tools সরঞ্জামগুলি একটি পূর্ণ-পাঠ্য অনুসন্ধান করে না এবং তাদের ক্ষেত্র সীমাবদ্ধ করতে ভাষা জ্ঞান ব্যবহার করছে।
এপ্রোগ্রামার

3

আপনি কোনও র‌্যাম ডিস্কে আপনার কোডবেস অনুলিপি করতে পারেন।


2

আপনি যদি একটি পূর্ণ পাঠ্য অনুসন্ধান ইঞ্জিন ব্যবহার করতে চান .. একটি ব্যবহার করুন:


এটি সর্বদা একটি বিকল্প, তবে আমি ভাবছিলাম যে আরও হালকা, দ্রুত এবং নোংরা গ্রেপ স্পিডআপ বিকল্পটি উপস্থিত থাকবে কিনা।
পেলটিয়ার

'বেশি লাইটওয়েট' তবে 'আমার স্টাফকে সম্পূর্ণ সূচকযুক্ত করতে চাই' 2 চূড়ান্ত একটি বিট :) আপনি যা চান তার জন্য সিটি্যাগগুলি সেরা ম্যাচ, যদি আপনি কেবল নোংরা হয়ে যেতে চান। অন্য সমস্ত কিছুর সাথে আপনি একটি বাস্তব ফুলটেক্সট-অনুসন্ধান ইঞ্জিন ব্যবহার করে শেষ করেন। উদাহরণস্বরূপ, @ রেডগ্রিটিব্রিক উত্তরে উল্লিখিত 'রিকোল' ব্যাকএন্ড হিসাবে জ্যাপিয়ান ব্যবহার করছে।
আকির

1
এগুলি অবিচ্ছিন্ন নয়। কল্পনা করুন, উদাহরণস্বরূপ, সিটি্যাগগুলিতে একটি - সম্পূর্ণ-পাঠ্য বিকল্প রয়েছে এবং একটি --tag-file বিকল্পটি গ্রেপ করা উচিত। অবশ্যই এর অস্তিত্ব থাকতে পারে তার অর্থ এই নয় যে এটিই রয়েছে :)
পেলটিয়ার

-1

না, আমি এটা মনে করি না। তবে একটি সহজ সমাধান হতে পারে: এসকে চেষ্টা করে দেখুন। আমি মনে করি আপনি যদি এটি একটি সুযোগ দেন তবে আপনি এটি গ্রেপের তুলনায় উল্লেখযোগ্যভাবে দ্রুত খুঁজে পাবেন, আরও ভাল অনুসন্ধান ফলাফল পেতে আরও সংক্ষিপ্ত অনুসন্ধান স্ট্রিং প্রয়োজন এবং একই কমান্ডের অনেকগুলি স্যুইচ ব্যবহার করার সময় অনেকগুলি পছন্দসই বৈশিষ্ট্য রয়েছে। একটি জিনিস যা এটি দ্রুত করে তোলে (যদিও সূচিকৃত নয়) তা হ'ল এটি আপনি অনুসন্ধান করতে চান না এমন অনেকগুলি বিষয়কে উপেক্ষা করে। এটি পার্লে লিখিত এবং পার্লের নিয়মিত এক্সপ্রেশনগুলি ব্যবহার করে (এবং এছাড়াও ম্যাক এবং উইন্ডোজ পোর্টগুলিও রয়েছে)।

http://betterthangrep.com/


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