রেজেক্স: "সহায়তা" ইত্যাদি লাইনগুলি সরান


371

কমান্ডগুলির একটি দীর্ঘ নথি আমার কাছে রয়েছে। নোটপ্যাড ++ বা রেজেক্স ব্যবহার করে, আমি কীবোর্ড_হেল্প ইত্যাদি সহ "সহায়তা" সম্বলিত সমস্ত লাইন মুছতে চাই

কিভাবে এই কাজ করা যেতে পারে?

উত্তর:


945

নোটপ্যাড ++ এর মাধ্যমে এটিও সম্ভব:

  • অনুসন্ধান মেনুতে যান, Ctrl+ Fএবং চিহ্ন ট্যাবটি খুলুন।
  • বুকমার্ক লাইনটি পরীক্ষা করুন (যদি বর্তমান সংস্করণে কোনও চিহ্ন ট্যাব আপডেট না থাকে)।

  • আপনার অনুসন্ধান শব্দটি প্রবেশ করান এবং সমস্ত চিহ্নিত করুন ক্লিক করুন

    • অনুসন্ধান শব্দযুক্ত সমস্ত লাইন বুকমার্ক করা হয়।
  • এখন অনুসন্ধানবুকমার্কবুকমার্কযুক্ত লাইনগুলি সরিয়ে মেনুতে যান

  • সম্পন্ন.


36
হ্যাঁ! এটিতে 'চিহ্নহীন লাইনগুলি সরান' রয়েছে, যা গ্রেপের মতো, ঠিক আমার যা প্রয়োজন!
ক্লো

6
ধন্যবাদ, এটি একটি ঝরঝরে কৌশল। আমি বরং ইউনিক্স কনসোলে আগুন দেওয়ার চেয়ে কয়েকটি সাধারণ ক্লিক দিয়ে এটি করতে পেরেছি (আমি বেশিরভাগ উইন্ডোতে আছি তা উপেক্ষা করে), cdএবং একটি জটিল কমান্ড টাইপ করব (সিনট্যাক্স সম্পর্কে উদ্বেগ প্রকাশ করে এবং স্থায়ীভাবে স্ক্রু আপ করার পরে উপলব্ধি করলাম) কোনও ব্যাকআপ নেই)। [ আমাকে ভুল করবেন না, আমি অন্যান্য জিনিসের জন্য সমস্ত সময় কনসোল কমান্ড ব্যবহার করি, তবে এই জাতীয় কোনও কিছুর জন্য এটি কেবল একটি ওভারকিল]]
এডিটিসি


3
BOOKMARK LINEএখানে চেক করা গুরুত্বপূর্ণ, অন্যথায় এটি কাজ করবে না !.
HaSeeB MiR

1
@ অ্যান্ড্রুশাল্টজ, দুঃখিত, তবে না।
স্টেমা

187

নোটপ্যাড ++ এ করার অন্য একটি উপায় হ'ল সন্ধান / প্রতিস্থাপন কথোপকথনে এবং রেজেেক্স সহ:

  • Ctrl+ hঅনুসন্ধান প্রতিস্থাপনের কথোপকথনটি আনতে।

  • ইন Find what:: টেক্সট বক্সে আপনার Regex অন্তর্ভুক্ত .*help.*\r?\n(যেখানে \rক্ষেত্রে ফাইল উইন্ডোজ লাইন শেষা w শ নেই ঐচ্ছিক)।

  • Replace with:পাঠ্য বাক্সটি খালি ছেড়ে দিন ।

  • অনুসন্ধান মোডের অঞ্চলে নিয়মিত এক্সপ্রেশন রেডিও বোতামটি নির্বাচিত কিনা তা নিশ্চিত করুন। তারপরে ক্লিক করুন Replace Allএবং ভয়েলা! আপনার অনুসন্ধান শব্দ যুক্ত সমস্ত লাইন helpসরানো হয়েছে।

এন ++ এ কীভাবে লাইন প্রতিস্থাপন করা যায়


17
চিহ্ন ট্যাব ব্যবহার করার চেয়ে ভাল উত্তর, যেহেতু এটি "ফাইলগুলি অনুসন্ধান করুন"
অ্যালেক্স

2
ব্যাকস্ল্যাশ সহ বন্ধুত্বের মতো বিশেষ অক্ষরগুলি পালানোর বিষয়টি নিশ্চিত করুন।
নমনেন


1
উচ্চতর পারফরম্যান্সের কারণে আরও ভাল উত্তর। > 1 মিলিয়ন লাইনের ফাইলগুলির সাথে বুকমার্কের পদ্ধতিটি আধুনিক মেশিনেও সর্বাধিক প্রসারিত।
রোল্যান্ড এটিংগার

17

এর সাথে সহজ কাজ grep:

grep -v help filename

পরিশেষে > newFileNameএকটি নতুন ফাইল আউটপুট পুনর্নির্দেশ করতে।


হালনাগাদ

এটি স্পষ্ট করার জন্য, স্বাভাবিক আচরণটি স্ক্রিনে লাইনগুলি মুদ্রণ করবে। এটি কোনও ফাইলে পাইপ দেওয়ার জন্য, >ব্যবহার করা যেতে পারে। এইভাবে, এই আদেশে:

grep -v help filename > newFileName
  1. grep কল grepস্পষ্টতই, প্রোগ্রাম
  2. -vআউটপুট বিপরীত করার জন্য একটি পতাকা। ডিফল্ট দ্বারা, grepপ্রদত্ত প্যাটার্নের সাথে মেলে এমন লাইনগুলি মুদ্রণ করে। এই পতাকা সহ এটি লাইনগুলি মুদ্রণ করবে যা না প্যাটার্ন মেলে।
  3. help মেলে প্যাটার্ন
  4. filename ইনপুট ফাইলের নাম
  5. > নিম্নলিখিত আইটেমটি আউটপুট পুনঃনির্দেশ
  6. newFileName নতুন ফাইল যেখানে আউটপুট সংরক্ষণ করা হবে।

আপনি খেয়াল করতে পারেন, আপনি আপনার ফাইলের জিনিসগুলি মুছবেন না। grepএটি পড়বে এবং অন্য একটি ফাইল সেভ হবে, সেই অনুযায়ী সংশোধিত হবে।


@ কেভিন ডিউক: হায়! এর অর্থ সম্ভবত আপনি grepইনস্টল করেন নি। যাইহোক আমি আপনাকে জিএনইউ গ্রেপ ইনস্টল করার পরামর্শ দিচ্ছি, এটি অবশ্যই উইন্ডোজে কাজ করবে এবং এটি সত্যিই একটি দরকারী সরঞ্জাম।
সিডিল

@ সিডিল এটি গ্রেপ কী তা জানত এবং এটি একগুচ্ছ আউটপুট করেছিল, এটি হতে পারে কারণ আমি কোনও আউটপুট ফাইল নির্দিষ্ট করে নি
লেবু

2
@ কেভিন ডিউক: আমি উত্তরে আগেই বলেছি, আউটপুটটি পুনঃনির্দেশিত করা যেতে পারে। মানক আচরণটি স্ক্রিনে মুদ্রিত হয়। পুনর্নির্দেশ করতে, আপনাকে (ক নল ব্যবহার >এই ক্ষেত্রে), একটি চূড়ান্ত কমান্ড দানgrep -v help filename > outputFileName
sidyll

ধন্যবাদ, আমি অবশ্যই এটি চেষ্টা করব!
লেবু


13

আপনি সেড ব্যবহার করে এটি করতে পারেন: sed '/help/ d' < inputFile > outputFile


4
@ সেনজিজফ্রস্টক্লা: লিনাক্স / ম্যাক / যাই হোক না কেনের কমান্ড লাইনে। আপনি যদি উইন্ডোজে থাকেন তবে আপনাকে সাইগউইনের মতো কিছু ইনস্টল করতে হবে এবং এটি ব্যবহার করতে হবে।
তিখন জেলভিস 23 '11

ধন্যবাদ @ টিখন জেলভিস! আর শেষ প্রশ্ন পারেন আমরা sed না 'সাহায্যের /' সব লাইন মুছে ফেলতে শুরু সাহায্যে (না ধারণকারী)?
জেফ

3
@ সেনজিজফ্রস্টক্লাউ: আমার ধারণা sed '/^help/ d'কাজ করা উচিত। ^লাইনের শুরু প্রতিনিধিত্ব করে।
টিখন জেলভিস

@ জেফ পাওয়ারশেলের রয়েছে sedএবংgrep
ওকার

সাইগউইন utf-16 ফাইল সহ উইন্ডোতে কাজ করতে পারে না। সাইগউইন ইউটিলিটিগুলি ইউএফটি -8 ডিফল্টরূপে ব্যবহার করে। তাদের মধ্যে খুব কমই ইউটিএফ -16 সমর্থন করে। বাবুন ব্যবহার করুন babun.github.io । এটি সাইগউইনের চারপাশে মোড়কের কাজ করে তবে বাক্সের বাইরে প্রচুর স্টাফ সরবরাহ করে।
সাহিল সিং

9

নিয়মিত প্রকাশের সাথে অনুসন্ধান করুন:

^.*(help).*$

2
মুছে ফেলার অংশটি কী?
পিটার মর্টেনসেন

1
@ পিটারমোরটেনসেন সন্ধান করুন \n\n, replace `(কিছুই না) দিয়ে প্রতিস্থাপন করুন
লিও

6

আপনি যদি উইন্ডোতে থাকেন তবে চেষ্টা করুন findstr। তৃতীয় পক্ষের সরঞ্জামগুলির প্রয়োজন নেই:

findstr /V /L "searchstring" inputfile.txt > outputfile.txt

এটি রেগেক্সকেও সমর্থন করে! কেবলমাত্র সরঞ্জামটির সহায়তা পড়ুনfindstr /?

পিএস আপনি বড়, বিশাল সঙ্গে কাজ করতে চান ফাইল (400 এমবি লগ ফাইলের মতো) একটি পাঠ্য সম্পাদক খুব মেমরি-দক্ষ নয়, সুতরাং, কেউ ইতিমধ্যে চিহ্নিত করেছে, কমান্ড-লাইন সরঞ্জামগুলি যাওয়ার উপায়। তবে উইন্ডোজে কোনও গ্রেপ নেই, তাই ...

আমি কেবল এটি 1 জিবি লগ ফাইলে চালিয়েছি এবং এটি আক্ষরিক অর্থে 3 সেকেন্ড নিয়েছে।

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