একসাথে বেশ কয়েকটি বিভিন্ন মান সন্ধান করুন এবং প্রতিস্থাপন করুন


15

আমি একাধিক দৃষ্টান্ত সহ একটি ফাইল আছে Text_1এবং Text1আমি সঙ্গে উভয় যারা স্ট্রিং প্রতিস্থাপন করা প্রয়োজন Text_Aএবং TextBযথাক্রমে।

বর্তমানে আমি প্রতিটি ফাইলে দুটি ফাইন্ড এবং রিপ্লেস ফাংশন করছি যা একটি এটি সন্ধান করে Text_1এবং এর সাথে প্রতিস্থাপন করে Text_Aএবং অন্যটি এটি সন্ধান করে Text1এবং প্রতিস্থাপন করে TextB

"অনুসন্ধান এবং প্রতিস্থাপন" দুবার চালানোর পরিবর্তে একবারে এগুলি করার কোনও উপায় আছে কি?

আমি ড্রিমউইভার সিএস 3 ব্যবহার করছি তবে আমার কাছে নোটপ্যাড ++, নিয়মিত নোটপ্যাড, ওও লেখক, এমএস ওয়ার্ডও রয়েছে যদি সেগুলি আরও সহজ হয়। আদর্শভাবে আমি এটি ড্রিমউইভার বা নোটপ্যাড ++ এ করতে পারতাম তবে আমি কাজটি পেতে অন্য কিছু ডাউনলোড করার জন্য উন্মুক্ত। আমি কোনও কমান্ড লাইনের স্টাফ না করা বা একটি ব্যাচ ফাইল তৈরি না করা পছন্দ করব (যদিও আমি এটি সম্পর্কে অবগত রয়েছি, আমি এটি সত্যই বুঝতে পারি না)।

উপরের বিবরণটি পরিষ্কার না হলে, আমাকে এটি এভাবে ব্যাখ্যা করা যাক ...

আমি 1 দস্তাবেজের মধ্যে 1 বার সন্ধান করুন এবং প্রতিস্থাপন চালাতে চাই এবং এটি অনুসন্ধান এবং প্রতিস্থাপনের সময় আমি নিম্নলিখিতটি নিম্নলিখিত সমস্তটি করতে চাই :

  1. এই Text_1 এবং প্রতিস্থাপন করুন সঙ্গেText_A
  2. এই Text1 এবং প্রতিস্থাপন করুন সঙ্গেTextB

আমি বেশ কয়েকটি নথি জুড়ে একটি অনুসন্ধান এবং প্রতিস্থাপন করার চেষ্টা করছি না


এটি আলাদা আলাদা প্যাটার্ন থাকলে Regexp অনুসন্ধান এবং প্রতিস্থাপন ব্যবহার করে এটি সম্ভব হতে পারে using অন্যথায় এটি সম্ভব নয় @ ম্যাট
ভাট

উত্তর:


9

শেড একবার দেখুন । আপনি কেবলমাত্র একটি কমান্ড লাইনের মাধ্যমে সহজেই আপনার লক্ষ্য অর্জন করতে পারেন

sed -e "s/Text_1/TextA/" -e "s/Text1/TextB/" <your_file.txt>your_file_new.txt


24

নোটপ্যাড ++ 6.0 যেহেতু নিম্নলিখিত কৌশলটি ব্যবহার করে স্ক্রিপ্ট ছাড়াই এটি আসলে সম্ভব:

সন্ধান করুন: পাঠ্য_1 এবং এর সাথে প্রতিস্থাপন করুন: পাঠ্য_আ

সন্ধান করুন: পাঠ্য 2 এবং এর সাথে প্রতিস্থাপন করুন: টেক্সটবি

খুঁজুন: (পাঠ্য_1) | (পাঠ্য 2)

প্রতিস্থাপন করুন: (? 1 পাঠ্য_এ) (? 2 পাঠ্যপুস্তক)

সাধারণ বাক্য গঠনটি হ'ল:

Find: (FindA)|(FindB)|(FindC)...

Replace: (?1ReplaceA)(?2ReplaceB)(?3ReplaceC)...

? 1 প্রথম আটকানো বাক্যাংশ ইত্যাদি বোঝায়।

আমি নিম্নলিখিত উত্তর থেকে এটি পেয়েছি: /programming//a/16104946/287101


3

নোটপ্যাড ++ ব্যবহার করে আপনিও পারেন

  • আপনি যে শব্দটি প্রতিস্থাপন করতে চান সেগুলি সহ সমস্ত ফাইল খুলুন এবং সমস্ত খোলা ফাইলগুলিতে সন্ধান / প্রতিস্থাপনের ব্যবহার করুন

    এখানে চিত্র বর্ণনা লিখুন

  • ফাইলগুলিতে সন্ধান / প্রতিস্থাপন ব্যবহার করুন

    এখানে চিত্র বর্ণনা লিখুন

  • সন্ধানের জন্য ম্যাক্রো রেকর্ড করুন এবং বিকল্পগুলি প্রতিস্থাপন করুন এবং এটি আবার খেলুন


আমি যা করার চেষ্টা করছি তা নয়। আমি এটি এক সাথে বেশ কয়েকটি ফাইলে প্রতিস্থাপন করতে চাই না, আমি এক সাথে একসাথে বেশ কয়েকটি স্ট্রিং প্রতিস্থাপন করতে চাই। আমি একটি সন্ধান চালাতে ও প্রতিস্থাপন করতে এবং এটি নথিতে সন্ধান করতে এবং টেক্সট_এর সাথে সমস্ত পাঠ্য টেক্সট_এ এবং টেক্সট 1 এর সমস্ত উদাহরণকে টেক্সটবি দিয়ে প্রতিস্থাপন করতে সক্ষম হতে চাই। দুটি পৃথক স্ট্রিং একটি ফাইলে দুটি পৃথক মানের সাথে প্রতিস্থাপিত হয়েছিল।
ম্যাট

চিত্র-লিঙ্কগুলি নষ্ট হয়ে গেছে, কোনও সুযোগ আপনি কীভাবে তাদের ঠিক করতে পারেন?
ববি

2

আপনি দুবার অনুসন্ধান এবং প্রতিস্থাপন চালিয়ে যাওয়া আরও ভাল, কারণ আপনার দুটি পৃথক প্রতিস্থাপন ঘটছে। তবে প্রক্রিয়াজাতকরণের সময় খুব কম ট্রেড অফ হওয়া উচিত। নিম্নোক্ত বিবেচনা কর:

একবার অনুসন্ধান এবং প্রতিস্থাপন চলমান, শব্দ অনুসারে শব্দটি অনুসন্ধান করুন:

Get Term
  Does term match?  If so, replace term
Get Next Term
...

চলমান উদ্দেশ্যে, আমরা এটি লিনিয়ার ধরে নিব এবং বলব যে এটি ও (এন) সময়ে চলে।

আপনি দুটি ভিন্ন পদ খুঁজে পেতে চান। চলমান অনুসন্ধান ও প্রতিস্থাপনের জন্য দু'বার মত দেখাচ্ছে:

Get Term
  Does term match?  If so, replace term
Get Next Term
...

Get Term
  Does term match?  If so, replace term
Get Next Term
...

যা O (2x1n) সময় নিতে পারে, বা এক শব্দ অনুসন্ধানে দ্বিগুণ দীর্ঘ সময় নিতে পারে।

দুটি প্রতিস্থাপনের সাথে দুটি পদ সন্ধান করা তাত্ত্বিকভাবে দেখতে দেখতে পাবেন:

Get Term
  Does first term match?  If so, replace first term
  Does second term match?  If so, replace second term
Get Next Term
...

শর্তাদি পাওয়া তেমন প্রক্রিয়াকরণ শক্তি গ্রহণ করে না, সুতরাং মূলত আপনি প্রতিটি শব্দটির জন্য দুটি সেট অনুসন্ধান সন্ধান করছেন, ও (1x2n) সময় দিচ্ছেন, একবার দৌড়াচ্ছেন তবে দুটি পদ অনুসন্ধান করছেন।

আপনি প্রতিটি শব্দ দু'বার লোড না করে কিছুটা সময় সাশ্রয় করবেন, আপনি প্রতিটি শব্দ দু'বার অনুসন্ধান করতে আরও বেশি সময় ব্যয় করবেন, সুতরাং সামান্য ট্রেড অফ রয়েছে এবং যেহেতু এই বৈশিষ্ট্যটি একটি প্রতিস্থাপনের সাথে একটি শব্দ অনুসন্ধান করার চেয়ে কম ব্যবহৃত হবে, তাই অ্যাপ্লিকেশন বিকাশকারীরা কেবল লেখেন না যে কার্যকারিতা।

প্রোগ্রামারদের অস্বীকৃতি: এটি একটি সাধারণ উদাহরণ। আমি জানি এটি আরও ভাল তবে কেন সেই বৈশিষ্ট্যটি পাওয়া গেল না তা আমি চেষ্টা করার চেষ্টা করছি।


0

নোটপ্যাড ++ এ নিয়মিত প্রকাশের সমর্থন মারাত্মকভাবে সীমাবদ্ধ। অল্টারনেশন অপারেটর ব্যতীত, আপনি যা করতে চান তার কাছাকাছি আসার কোনও আশা নেই। আপনাকে ব্যবহার করতে হবে sedবা এমন একটি সম্পাদকের দরকার হবে যা আরও ভাল রেগেক্স সমর্থন করে।

নিয়মিত এক্সপ্রেশন সিনট্যাক্সের সাধারণভাবে ব্যবহৃত GNU এক্সটেনশনের মধ্যে রয়েছে:

  • দ্য ? অপারেটর, শূন্য বা এক ধরণের অর্থ;
  • | বিকল্প বিকল্প ("foo | বার" "foo" বা "বার" এর সাথে মেলে)
  • সংশোধনকারী / লোভীর জন্য জি / অথবা ক্ষেত্রে সংবেদনশীল ক্ষেত্রে;
  • and a, b bet একটি ধরণের বেটউইন ক এবং বি টোকেন বোঝাতে।
  • (প্যাটার্ন) + একই প্যাটার্নের এক বা একাধিক ম্যাচ ম্যাক করা

স্কিটিলা উপাদান, যা নোটপ্যাড ++ অন্তর্ভূক্ত করে, কঠোরভাবে পসিক্স-সামঞ্জস্যপূর্ণ এবং এই এক্সটেনশনগুলিকে স্বীকৃতি দেয় না। আপনি সম্পূর্ণ রেনডাউন এবং কয়েকটি উদাহরণের জন্য নিয়মিত প্রকাশের সাথে পরামর্শ করতে পারেন

সূত্র

আরো দেখুন

sedউইন্ডোজ জন্য GNUWin32


0

আমি ব্যাচ সন্ধান এবং প্রতিস্থাপনের জন্য টেক্সটক্রোলার ব্যবহার করি। (আমি একক অনুসন্ধানের জন্য নোটপ্যাড ++ ব্যবহার করি / একাধিক ফাইল জুড়ে এটি প্রতিস্থাপন করতে পারি কারণ এটি টেক্সটক্রোলারের চেয়ে দ্রুত। ভবিষ্যতের ব্যবহারের জন্য ব্যাচ ফাইলগুলি সংরক্ষণ এবং পুনরায় লোড করা যায়।


দয়া করে দেখুন আমি আমার উত্তরগুলিতে সফ্টওয়্যারটি কীভাবে সুপারিশ করব? বিশেষত, খালি ন্যূনতম সময়ে, সফ্টওয়্যারটি কোথায় পাবেন তা বলুন।
জি-ম্যান 21

ব্যাচ ফাংশনটি কেবল টেক্সটক্রোলারের নন-ফ্রি প্রো সংস্করণে উপলব্ধ।
হবিস

0

এছাড়াও এটি অ্যাক্টিভএক্স প্লাগইন (নোটপ্যাড ++ এর জন্য) ব্যবহার করে এবং কাস্টম স্ক্রিপ্ট সম্পাদন করে করা যেতে পারে:

NppApplication.activeEditor.text
=NppApplication.activeEditor.text
.replace(/Text_1/g,"Text_A")
.replace(/Text1/g,"TextB")

এটি কাজ করে, তবে মনে রাখবেন যে অ্যাক্টিভএক্স প্লাগইনে একটি বর্তমান বাগের কারণে আপনি যখন স্ক্রিপ্টটি চালাবেন তখন প্রতিটি সময় NUL অক্ষর ফাইলটিতে যুক্ত হয়।
আইডন

-1

এটি সমস্ত সংখ্যার জন্য কাজ করে (পাঠ্য / নিবন্ধ থেকে সমস্ত সংখ্যা সরাতে)

  1. অনুসন্ধান এবং প্রতিস্থাপন ডায়ালগ খুলতে Ctrl + H টিপুন।

  2. "কী সন্ধান করুন" বাক্সে, টাইপ করুন ^ #

  3. "প্রতিস্থাপন" বাক্সটি খালি রেখে দিন।

  4. সমস্ত প্রতিস্থাপন.


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