নোটপ্যাড ++ এর সমস্ত লাইন মুছে ফেলুন আমার প্রয়োজনীয় একটি শব্দ যুক্ত লাইনগুলি বাদে?


201

আমার কাছে একটি টেক্সট ফাইল রয়েছে এবং লাইনগুলি শুরু রাখতে <Path>এবং অন্য সমস্ত লাইন মুছতে চাই।

আমি এটা কিভাবে করবো?



1
লাইনফিল্টার 2 প্লাগইন ব্যবহার করাও সহজ।
কার্স্টেন

উত্তর:


292

এটি অর্জনের একটি সহজ উপায় আছে। আপনার 3 টি পদক্ষেপ সম্পাদন করা দরকার।

  1. অনুসন্ধান মেনুতে যান> সন্ধান করুন ...> "চিহ্নিত করুন" ট্যাবটি নির্বাচন করুন। নিয়মিত অভিব্যক্তি সক্রিয় করুন। অনুসন্ধান করুন ^<Path>( ^লাইন শুরুর জন্য)। "বুকমার্ক লাইনগুলি" পরীক্ষা করতে ভুলবেন না এবং "সমস্ত চিহ্নিত করুন" টিপুন

    ==> আপনি যে সমস্ত সারি রাখতে চান তা একটি বুকমার্ক পেয়েছে

  2. মেনুতে যান "অনুসন্ধান - বুকমার্ক - বিপরীত বুকমার্ক"

    ==> আপনি যে সমস্ত লাইন মুছতে চান তা বুকমার্কযুক্ত।

  3. মেনুতে যান "অনুসন্ধান - বুকমার্ক - বুকমার্ক করা লাইনগুলি সরান"

    ==> সমস্ত বুকমার্কযুক্ত লাইনগুলি মুছে ফেলা হয়।


47
+1 টি। ভাল লাগল, এই সম্পর্কে জানতাম না। "চিহ্নযুক্ত রেখাগুলি সরান" বা "কাটা / অনুলিপিযুক্ত চিহ্নিত রেখাগুলি" অপশন রয়েছে যা কিছু সময় সাশ্রয় করতে পারে।
ডিজেল

6
আমার প্রথমে সমস্যা হয়েছিল কারণ নোটপ্যাড ++ এর আমার সংস্করণে (6.2.3) "চিহ্নিত ট্যাব" নামে একটি মেনু আইটেম নেই। পরিবর্তে, আপনাকে "অনুসন্ধান" -> "সন্ধান করুন ..." -> "চিহ্ন" ট্যাবে ক্লিক করতে হবে। এবং আপনাকে আর বুকমার্কগুলিকে বিপরীত করতে হবে না। নোটপ্যাড ++ এ এখন "চিহ্নযুক্ত লাইনগুলি সরান" has তবে আপনার টিপটি আমাকে অনেক সাহায্য করেছে! ধন্যবাদ!
aakoch

22
আপনি পদক্ষেপ 2 এড়িয়ে যেতে পারেন, কারণ "চিহ্নহীন লাইনগুলি সরান" নির্বাচন করা (কমপক্ষে v6.4.5 থেকে) সম্ভব।
জুলিয়ান

4
আমি এত দিন নোটপ্যাড ++ ব্যবহার করছি এবং এর আগে 'বুকমার্কস' কী তা আমি কখনই জানতে পারি না। আশ্চর্যজনক যে সরঞ্জামটি কতটা শক্তিশালী এবং আমি এটি সম্পর্কে কতটা কম জানি।
ডানুবিয়ান নাবিক

আপনি একটি জেনিয়াল। এটি বাস্তবের জন্য আপনি কীভাবে সরঞ্জামটি ব্যবহার করেন তা কীভাবে জানবেন তার আরও একটি চমকপ্রদ উদাহরণ।
মার্সেলো গ্রেচি লিন্স

67

এটি আসলে 6.3 হিসাবে দুটি ধাপে করা যেতে পারে। আমি মনে করি এটির আগে এটি সম্পন্ন করা যেতে পারে যেমন আমি প্রথম চেষ্টা করেছিলাম যখন আমার 5.9 ছিল।

এই উত্তরের ভিত্তি হিসাবে স্টিমার পোস্ট ব্যবহার করা। এখন আরও একটি পদক্ষেপ রয়েছে। লাইনগুলি চিহ্নিত করুন এবং চিহ্নযুক্ত রেখাগুলি সরিয়ে দিন। সম্পন্ন. বিস্তারিত নির্দেশাবলী অনুসরণ করুন।

  1. "অনুসন্ধান" মেনু অনুসন্ধান করুন। সন্ধানের কথোপকথনে, "চিহ্নিত করুন" ট্যাবে ক্লিক করুন। নিয়মিত অভিব্যক্তি সক্রিয় করুন। অনুসন্ধান করুন ^<Path>( ^লাইন শুরুর জন্য)। "বুকমার্ক লাইনগুলি" পরীক্ষা করতে ভুলবেন না এবং "সমস্ত চিহ্নিত করুন" টিপুন

    ==> আপনি যে সমস্ত সারি রাখতে চান তা এখন একটি বুকমার্ক রয়েছে

  2. মেনু অনুসন্ধান করুন -> বুকমার্ক -> চিহ্নযুক্ত লাইনগুলি সরান।

    ==> সমস্ত নন বুকমার্কড লাইন মুছে ফেলা হয়।


3
এটি আমাকে 10 সেকেন্ড সময় নিয়েছিল যখন অন্য সমাধান আমাকে> 20 সেকেন্ড সময় নিয়েছিল। ধন্যবাদ!
কালো

আমার ^আমার অনুসন্ধান শব্দটিতে যোগ করার দরকার ছিল না , বা নিয়মিত এক্সপ্রেশনও ব্যবহার করার দরকার ছিল না । আশা করি এটি কাউকে সাহায্য করবে।
sa_leinad

29

ক্লিন রেজেেক্স কেবলমাত্র সমাধান

দুই ধাপ বৈকল্পিক

  1. regex প্রতিস্থাপন

    (?!^.*test.*$)^.+
    

    আপনার অনুরোধ করা পাঠ্য দিয়ে পরীক্ষা প্রতিস্থাপন করুন

  2. প্রতিস্থাপন করা

    [\r\n]{2,}
    

    সঙ্গে \r\n

একক পদক্ষেপ বৈকল্পিক

^(?!<Path>).*\r\nখালি স্ট্রিং সহ মিলগুলি প্রতিস্থাপন করতে ব্যবহার করুন । সাধারণ সংস্করণ হবে ^(?!.*?test).*\r\nএটি ফাইলের শেষে খালি লাইনটি সরিয়ে ফেলবে না। একাধিক পরপর খালি লাইন সহ অন্যান্য সমস্ত লাইন সরানো হয়েছে।

ব্যাখ্যা:

  1. (?!)একটি নেতিবাচক চেহারা আপ। ^.*test.*$ অনুরোধ পাঠ্য থাকা সম্পূর্ণ লাইনটি নির্বাচন করে।

  2. [\r\n]{2,}\r\nএটি একবার উইন্ডোজ নতুন লাইন পরে আরও ঘটবে যে কোনও সাথে মেলে । আপনার যদি লিনাক্স বা অন্য কোনও অপারেটিং সিস্টেম থাকে তবে আপনার এটির সাথে ঝামেলা করতে হতে পারে। দ্বিতীয়টি হল একটি রিটার্ন লাইনের সাথে এটি প্রতিস্থাপন করা।


1
লোকেদের জন্য দ্রষ্টব্য: কখনও কখনও লাইনের শেষের সাথে রেজেক্স (EOL) "কাজ করে না"। \r\nEOL পোস্টে উল্লেখ কি উইন্ডোজ ব্যবহার এবং সেইজন্য বা হতে পারে আপনি যা খুঁজছেন হয়। প্রায়শই লিনাক্স এনভায়রনমেন্টে এটি কেবল \n, বা কেবল ম্যাক পরিবেশে \rথাকে তাই আপনি যদি কোনও ফাইল থেকে টানেন তবে এটি উইন্ডোজ স্টাইলের ইওএল হবে না। যাইহোক, যদি আপনি FileZilla মাধ্যমে ডাউনলোড করুন ASCII মুডে আরম্ভ করে, তবে তাদের পরিবর্তন হতে পারে উইন্ডোজ EOL ফিরে (যেমন \nমধ্যে \r\n)। সুতরাং যদি রেজেক্স কাজ না করে তবে "দেখুন> প্রতীক দেখান> লাইনের শেষ দেখান" এ গিয়ে EOL শৈলীর চেক করুন। সিআর = \r। এলএফ = \n
ধাপিন

5

আমার কাছে মনে হয় এর সহজ উপায় হ'ল "বর্তমান নথিতে সমস্ত অনুসন্ধান করুন" বৈশিষ্ট্যটি ব্যবহার করা এবং তারপরে ফলাফলগুলি একটি নতুন ফাইলে অনুলিপি করুন বা সমস্তটি নির্বাচন করুন এবং বর্তমানের মধ্যে প্রতিস্থাপন করুন।

এটি আপনার পাঠ্যযুক্ত সমস্ত লাইন খুঁজে পেতে পারে এবং নীচে তাদের তালিকাবদ্ধ করে। অনুসন্ধানের ফলাফলটিতে ডান ক্লিক করুন এবং কপি / পেস্ট করুন।


প্রতিস্থাপন করে আপনাকে লাইন নম্বরগুলি সরিয়ে ফেলতে হবে \tLine [\d]*: । এখনও একটি দুর্দান্ত উত্তর।
নুমেনন

এটি এত লম্বা লাইনগুলির জন্য কাজ করবে না যে সন্ধানের ফলাফল উইন্ডোতে নোটপ্যাড ++ এটি ছিন্ন করে।
মাস্টারজয়ে 2

4

মেনু অনুসন্ধানে যান -> সন্ধান করুন ... -> নিয়মিত এক্সপ্রেশন সক্রিয় করুন। "^ পথ " (line লাইন শুরুর জন্য) অনুসন্ধান করুন।

"বর্তমান নথিতে সমস্ত সন্ধান করুন" বাটনে ক্লিক করুন।

"ফলাফলটি অনুসন্ধান করুন" উইন্ডোটি প্যাটার্নের সমস্ত লাইন দিয়ে উপস্থিত হবে। নোটপ্যাড ++ এর একটি নতুন ট্যাবে কপি / পেস্ট নির্বাচন করুন।

এই নতুন ট্যাবে, পেয়েছেন: মেনু অনুসন্ধান -> প্রতিস্থাপন ... -> নিয়মিত অভিব্যক্তি সক্রিয় করুন।

"কী সন্ধান করুন:" ক্ষেত্রে, প্যাটার্নটি ব্যবহার করুন: "লাইন \ d +:"। "এর সাথে প্রতিস্থাপন করুন:" ক্ষেত্রটি ফাঁকা ছেড়ে যান।

"সমস্ত প্রতিস্থাপন করুন" বোতামে ক্লিক করুন।


3

আপনি প্রকৃতপক্ষে <Path>কোনও ফাইল সিস্টেমের পাথের সাথে না মিলতে চান তা সরবরাহ করে, আপনি পার্ল ব্যবহার করে একটি কমান্ড লাইন থেকে এটি চেষ্টা করতে পারেন:

perl -pe " if ($_ !~ /<Path>/) { s/$_// } " < in.txt > out.txt

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


3

এটি আনাড়ি, তবে এটি এক্সেল-এ সমস্ত অনুলিপি করুন এবং তারপরে =IF(LEFT(A1,6)="<Path>",A1,"")সমস্ত সূত্রটি ব্যবহার করুন এবং অনুলিপি করুন। তারপরে নোটপ্যাড ++ এ ফিরে কপি করুন। এটি আদর্শ নয়, তবে এটি বেশ সহজ (যদি আপনার এক্সেল থাকে)। সতর্কতা: এটি ইনডেন্টড লাইনগুলির সাথে ভাল কাজ করবে না (এক্সেল কলামগুলি স্থানান্তর করবে ইত্যাদি)।


সরাসরি এই কাজটি পরিচালনা করার বিভিন্ন উপায় রয়েছে, আপনি কেন ধ্বংসাত্মকভাবে অন্য কোনও অ্যাপ্লিকেশনটিতে অনুলিপি করতে চান, সেখানে প্রক্রিয়া করে আবার স্থানান্তর করতে চান?
বাল্ড্রিক

1

নোটপ্যাড ++ দিয়ে আপনি যা চান তা করার সহজ উপায় নেই। আপনাকে হয় আপনার কম্পিউটারে একটি প্রোগ্রাম ডাউনলোড করতে হবে বা ভিবিতে কিছু স্ক্রিপ্ট স্ক্রিপ্ট করতে হবে (আমি মনে করি আপনি উইন্ডোজ এ আছেন)।

সেড দিয়ে আপনি দুটি উপায়ের মধ্যে যা চান তা করতে পারেন। সেড ইউটিলিটি * নিক্সে প্রিয় এবং জ্ঞানউইন ( http://gnuwin32.sourceforge.net/packages/sed.htm ) এ দুর্দান্ত লোকের কাছ থেকে উইন্ডোজের জন্য পাওয়া যাবে । আপনি এই প্রোগ্রামটি ডাউনলোড করবেন এবং কমান্ড প্রম্পট থেকে আপনার কমান্ডটি চালাবেন run

না থাকা সমস্ত লাইন মুছুন:
sed -i '/^<PATH>/!d' file

একটি নতুন ফাইলযুক্ত সমস্ত লাইন মুদ্রণ করুন:
sed -n '/^<PATH>/p' file > newfile

আমি আপনাকে নতুন ফাইলের যে লাইনগুলি চান তা মুদ্রণ করার পরামর্শ দিচ্ছি। এর কারণ হ'ল আপনি সম্ভবত প্রথমবারের মতো রিজেক্স স্টেটমেন্ট পাবেন না। সেড ইউটিলিটি নিয়মিত এক্সপ্রেশন বেসিক সিনট্যাক্স ব্যবহার করে ( http://www.regular-expressions.info/references.html এ রেফারেন্সটি দেখুন )। যদি কোনও * নিক্স পাথের (/ var / www) এর মতো কিছু হয় তবে আপনার রেজেক্সটি কাজ করার জন্য আপনাকে / চরিত্রটি থেকে বাঁচতে হবে।

উদাহরণ: sed -n '/^\/var\/www/p' file > newfile
এটি '/ var / www' দিয়ে শুরু হওয়া সমস্ত লাইন মুদ্রণ করবে। আমি যদি / চরিত্রটি থেকে বাঁচতে দায়ের করি তবে কমান্ডটি একটি ত্রুটি ছুঁড়ে ফেলত। আপনি ব্যাকস্ল্যাশ অক্ষর সহ একটি বিশেষ অক্ষর (যেমন /) এড়াতে পারবেন \


এটি একটি পুরানো উত্তর হতে পারে তবে যেহেতু এটির অবিশ্বাস্যরূপে 2 টি ভোট রয়েছে (এখন আমার কাছ থেকে 1) এটি কতটা ভুল তা নিয়েই মন্তব্য করতে চেয়েছিল, তবে আমি কেবল (আবার) কীভাবে>> 100k লাইনটি নিয়েছি তা একটি সিঙ্গেল কমান্ড অপারেশনে পুনরায় জানাতে চাই এই ক্ষেত্রে একটি শব্দ (বা শব্দগুচ্ছ) সম্বলিত 34 টি লাইনে লগ ফাইলটি নীচে 3 সেকেন্ডের নীচে কেবল "ত্রুটি" ফাইন্ডে নিচে ফাইলটি লিখুন: ^ (?! * ত্রুটি)। * \ r x n এবং খালি জায়গায় প্রতিস্থাপন ছেড়ে, এবং ".লাইনলাইন মেলে" নির্বাচন করবেন না এবং "সব প্রতিস্থাপন" ক্লিক করুন। হ্যাঁ আমি সেড এবং অ্যাজককেও পছন্দ করি তবে এনপিপি এটি করতে পারে না তা কেবল মিথ্যা।
কলিন চাফিন

1

রিজেক্স প্রতিস্থাপনের সাথে আরও ভাল সমাধান:

(?!^.*SOMETEXT.*$)^.+\r?\n

এবং কিছুই সঙ্গে প্রতিস্থাপন


1
সুপার ব্যবহারকারীকে স্বাগতম! যারা তাদের জানেন না তারা এই রেগেক্সের প্রতিটি বিট কী করে তা বোঝানোর জন্য যত্নশীল? :)
বারটিয়েব

0

অনুসন্ধান-> ব্যবহার করুন এবং ^[^ ].*একটি খালি স্ট্রিং ব্যবহার করে সমস্তকে প্রতিস্থাপন করুন এবং এর মতো একটি নিয়মিত এক্সপ্রেশন প্রবেশ করুন Regular expression। পরবর্তী পদক্ষেপ খালি লাইন অনুসন্ধানের জন্য খুঁজে পেতে \n\nসঙ্গে প্রতিস্থাপন \nব্যবহার Extendedনা হওয়া পর্যন্ত একাধিক বার 0 occurrences were found.(ব্যবহারের \r\n\r\nএবং \r\nফাইল ফরম্যাট উপর নির্ভর করে)। আপনার যদি এক সারিতে অনেকগুলি খালি লাইন থাকে তবে এটি অনুসন্ধান স্ট্রিংয়ে ব্যবহার করা তাত্ক্ষণিক \n\n\n\n\n\n\nবা আরও বেশি \n: এস।

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