আমি কীভাবে বিপুল সংখ্যক বিভিন্ন অনুসন্ধান / প্রতিস্থাপন সম্পাদন করতে পারি?


0

আমার বেশ কয়েকবার একটি টেক্সট ডকুমেন্ট ছিল যা আমার কয়েকশো সন্ধান / প্রতিস্থাপন প্রয়োগ করতে হবে। এই সন্ধান / প্রতিস্থাপনগুলি এমন একটি প্যাটার্ন অনুসরণ করে না যা রেজেক্স যুক্তিসঙ্গতভাবে প্রয়োগ করা যেতে পারে এবং যাতে ক্রম প্রয়োগ করা প্রয়োজন। এর আগে আমি অনেকগুলি অনুসন্ধানের পরে হাতে করে এগুলি অবলম্বন করেছি, তবে এর চেয়ে ভাল উপায় আর কী আছে?

উত্তর:


1

দয়া করে আমাকে সংশোধন করুন যদি আমি আপনার প্রশ্নটি ভুল বুঝেছি তবে আপনার বিবরণ থেকে, আমি এটি বোঝাতে চাইছি আপনার একটি একক (সম্ভবত খুব বড়) এসকি .txtডকুমেন্ট রয়েছে এবং যখন আপনি বলবেন যে পরিবর্তনগুলি "ক্রম" প্রয়োগ করা উচিত, আপনি মানে ' d পুরো নথিতে প্রথম অনুসন্ধান / প্রতিস্থাপন করতে চান, তারপরে দ্বিতীয় সন্ধান / সম্পূর্ণ নথিতে প্রতিস্থাপন এবং এই জাতীয় কিছু করতে চান।

সম্ভবত সবচেয়ে সহজ সমাধান হ'ল ফাইল তৈরি করা (কল করুন sedscript) কোনও sedস্ক্রিপ্ট, পরিবর্তনের জন্য এক লাইনের অন্তর্ভুক্ত। এখানে একটি উদাহরণ। gশেষে "বিশ্বব্যাপী" মানে, অর্থাত, সব ঘটনার, শুধু কোনো লাইনে প্রথম সংঘটন প্রতিস্থাপন করুন।

s/foo/bar/g
s/hello/world/g
s/yellow/green/g
:

তারপরে আপনি এটি নিম্নলিখিত হিসাবে চালাতে পারেন:

sed -f sedscript infile.txt > outfile.txt

আপনি যদি আউটপুট নিয়ে সন্তুষ্ট হন তবে কেবল ইনপুটটির mvশীর্ষে ফিরে যান:

mv outfile.txt infile.txt

আপনি যদি লিনাক্স মেশিনে থাকেন তবে তা আসে sed। আপনি যদি উইন্ডোজে থাকেন তবে আপনি সাইগউইন বা আমার নিজস্ব হ্যামিল্টন সি শেল ( ফ্রি সংস্করণ সহ ) সহ sed(এবং mv) পেতে পারেন ।

যোগ করা হয়েছে:

যেহেতু আপনি স্প্যান লাইনটি শেষ হয় এমন ম্যাচগুলিও বিবেচনা করতে চান, তবে হ্যাঁ, এটি করার একটি উপায় হ'ল সমস্ত লাইন শেষকে একটি বিশেষ চরিত্র বা স্ট্রিংয়ের সাথে প্রতিস্থাপন করা, সন্ধান করুন / আপনার পরিবর্তিত ক্রিয়াকলাপগুলি প্রতিস্থাপন করুন, তারপরে লাইনটি শেষ করুন ফিরে এসেছ

এর সাথে লাইন শেষ রূপান্তরগুলি করার সবচেয়ে সহজ উপায় sedহ'ল পৃথক পাইপলাইন পর্যায়ে। আমার উদাহরণে আমি এখানে \r\nসিকোয়েন্সগুলি প্রতিস্থাপন করেছি #তবে এটি সম্পূর্ণ নির্বিচারে স্ট্রিং হতে পারে (তবে আপনি যদি একটি একক অক্ষর ব্যবহার করতে পারেন তবে এটি আরও সহজ))

sed 's/\r\n/#/' infile.txt | s -f sedscript | sed 's/#/\r\n/g' > outfile.txt

আপনার sedscriptফাইলের অভ্যন্তরে , আপনি উভয় প্রকারের উপর অনুসন্ধান / প্রতিস্থাপন করতে পারবেন, শব্দের মধ্যে একটি স্থান দিয়ে বা আপনি যা বদলেছেন তা দিয়ে।

আপনি যদি কেবল একটি একক অক্ষর ব্যবহার করতে সক্ষম হন এবং স্বতন্ত্রতার গ্যারান্টি দেওয়ার জন্য কোনও মাল্টিচ্যারেক্টর স্ট্রিংয়ের প্রয়োজন না হয়, আপনি কোনও শব্দকে পৃথক করতে পারে এমন অক্ষরের তালিকার চারপাশে \(...\)একটি ট্যাগযুক্ত নিয়মিত অভিব্যক্তি তৈরি করতে স্বরলিপিটি ব্যবহার করতে পারেন [...]। এটি যাই হোক না কেন এটি প্রতিস্থাপন স্ট্রিং হিসাবে সন্নিবেশ করা যেতে পারে \1

এটি কীভাবে কাজ করবে তা এখানে একটি স্ক্রিনশট।

লাইন সেড দিয়ে বিরতি দেয়


আপনি সঠিকভাবে বুঝতে। এটি অনুসন্ধান / প্রতিস্থাপনের অংশ হিসাবে ট্যাব এবং নিউলাইন অক্ষরের সাথে কাজ করবে? এবং, আমি কমান্ড লাইনের সাথে মোটামুটি নতুন / অস্বস্তিকর, সুতরাং আমি যে ফাইলটি চালাতে চাইছি সে ফাইলটি সিটিতে অবস্থিত থাকলে আপনি যদি সঠিক কমান্ডগুলি ব্যবহার করতে চান তবে এটি আরও বেশি সহায়তা করবে: \ ব্যবহারকারীগণ \ এরিক \ নথিগুলি forma বিন্যস্ত .txt
ই.টি.ই

এটি ট্যাব অক্ষরের সাথে অনুসন্ধানে বা স্ট্রিংগুলি প্রতিস্থাপন করতে পারে তবে এমবেডড নিউলাইন অক্ষরের সাথে নয়। (এম্বেড করা নতুন লাইনের সাথে স্ট্রিংগুলি কী কী প্রয়োজনীয়?) infile.txtআপনার আসল পাথের সাথে প্রতিস্থাপন করুন C:\Users\Eric\Documents\unformatted.txt,।
নিকোল হ্যামিল্টন

ঠিক আছে, অনেকগুলি সন্ধান / প্রতিস্থাপনের জন্য নিউলাইনগুলি প্রতিস্থাপনের প্রয়োজন, তবে আমি সম্ভবত প্রায়শই এটি টেক্সটফিক্সার / টোলেটস / রেমোভলাইন- লাইন- ব্রেকস.ফপ দিয়ে কাজ করতে পারতাম যতক্ষণ না আমি সন্ধান / প্রতিস্থাপনের সাথে নতুন লাইনে যুক্ত করতে পারি, এটা করার উপায় আছে? এবং ধন্যবাদ.
ইট

সেখানে নতুনলাইনগুলি কেবল কিছু সুবিধাজনক প্রান্তে পাঠ্য মোড়ানো বা প্রতিটি লাইন একটি পৃথক রেকর্ডের কারণে?
নিকোল হ্যামিল্টন

মুছে ফেলা হওয়া নতুন লাইনগুলি হ'ল ফর্ম্যাটিংয়ের অংশ যা আমি মুছে ফেলতে চাই, আমি নিশ্চিত নই যা কোনটির অধীনে চলে।
ই.টি.ই

0

সাধারণত প্রোগ্রামগুলি একাধিক ফাইলের সাথে একক অনুসন্ধান এবং-প্রতিস্থাপন সংমিশ্রণ প্রয়োগ করা ভাল, অন্যভাবে নয় not

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


এটি একটি যুক্তিসঙ্গত পদ্ধতির মতো বলে মনে হচ্ছে, নোটপ্যাড ++ (আমার সাধারণ পাঠ্য সম্পাদক) এর কার্যকারিতা রয়েছে বলে মনে হচ্ছে তবে কীভাবে এটি সঠিকভাবে নতুন লাইনের অক্ষরগুলি প্রতিস্থাপন করা যায় তা আমি নিশ্চিত নই (এক্সটেন্ডেড মোডে নতুন লাইনের কাজ দিয়ে জিনিসগুলি প্রতিস্থাপন করে তবে নতুন লাইনের পরিবর্তে নয়) ।
ই.টি.ই

0

FART আপনাকে সহায়তা করতে সক্ষম হওয়া উচিত। শুধু একাধিক বাতকর্ম কলের মাধ্যমে একটি ব্যাচ ফাইল তৈরি, এবং যদি আপনি নতুন লাইন (প্রতিস্থাপন করতে চান\r\n), মাধ্যমে সি-শৈলী সিনট্যাক্স ব্যবহার সক্রিয়-Cবা--c-styleপ্যারামিটার।

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