রেজেক্স কমান্ড লাইন থেকে প্রতিস্থাপন করুন


21

কমান্ড লাইন থেকে পুনরায় প্রতিস্থাপন করা সম্ভব? এখনই আমি এটি করতে নোটপ্যাড ++ ব্যবহার করছি। কমান্ড লাইনে আমি কেবলমাত্র FINDSTR ব্যবহার করতে পারি যা কেবল ম্যাচযুক্ত ফাইল / লাইনগুলিই সনাক্ত করতে পারে

সম্পাদনা:
সম্ভবত কোনও ভিবি স্ক্রিপ্ট তৈরি করা এবং এটি সেন্টিমিডি থেকে চালানো সম্ভব হবে? আমি কন্টেন্টটি সহ একটি ফাইল "হাই.ভিবিএস" তৈরি করেছি

Msgbox "Hi Buddy"

তারপরে সিএমডি আমাকে কমান্ড লাইন থেকে "হাই" টাইপ করে সরাসরি এটি চালানোর অনুমতি দেয়।
সুতরাং যদি এটি ব্যাচ স্ক্রিপ্টের মাধ্যমে সম্ভব না হয় তবে আমি একটি ভিবি স্ক্রিপ্ট ট্রট ব্যাচ ব্যবহার করতে পারি। অথবা ..?


শেষে আপনি একটি অনিবার্য বাক্য রেখেছেন এবং পুরো সম্পাদনা অংশটি সমস্যার দিকে ইঙ্গিত করছে না এমনটি হ'ল "আমি ভিবিতে একটি হ্যালো ওয়ার্ল্ড তৈরি করি, আমি কি ব্যাচে এই জাতীয় কিছু তৈরি করতে পারি? @ ইয়ানপাগসলে পোস্ট করা উত্তরটি দেখুন
রেজেেক্স

@ আজিজ: এই উত্তরগুলির কোনও কি আপনার পক্ষে কাজ করেছে? যদি তাই হয়, আপনি কি এটি গ্রহণ করবেন? এটি এই সম্প্রদায়ের অংশগ্রহণের অংশ; যেভাবে আমরা একে অপরকে সাহায্যের জন্য ধন্যবাদ জানাই। গৃহীত উত্তরের জন্য প্রদত্ত খ্যাতি পয়েন্টগুলি অন্য ব্যবহারকারীদের একে অপরের অভিজ্ঞতা নির্ধারণে সহায়তা করে। ধন্যবাদ।
জে রবার্ট

আমি কমান্ড লাইন থেকে MYVBREPLACE (.vbs) ফাইলের নাম REGEXPATTERN রিপ্লেসমেন্টের মতো কিছু বলতে চাইছিলাম।
আজিজ

উত্তর:


11

এখানে যান
http://gnuwin32.sourceforge.net/packages.html
এসইডি তে স্ক্রোল করুন। আপনি যখন সেখানে থাকবেন তখন কোরিউটিলগুলিও ডাউনলোড করুন।

এই কমান্ডটি বিশ্বব্যাপী এবং প্রতিটি লাইনে a এর সাথে প্রতিস্থাপন করবে। সুতরাং কেবল লাইনে প্রথম ঘটনা নয়।

যেমন "s / a / b / g" a.txt ব্যবহার করুন

C:\>type a.txt
aaaa
aaa

C:\>sed "s/a/b/" a.txt
baaa
baa

C:\>sed "s/a/b/g" a.txt
bbbb
bbb

C:\>

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

dim re, s
set re = new RegExp

re.Pattern="in"
re.Global=True 'false is default
s="bin din in"
MsgBox re.Replace(s,"xxx")

বিএক্সএক্সএক্স এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএলএক্স


আশ্চর্য পাগল সরঞ্জাম !!! এই সরঞ্জামটি খুব অ্যাডভান্সড ছিল। আমি এটি এখনও ব্যবহার করতে পারি না, তবে আমি যখন gnu.org/software/sed/manual/sed.html#The-_0022s_0022- কম্যান্ড পড়ি তখন আমি দেখতে পাচ্ছি যে এটি আমার প্রত্যাশার চেয়ে অনেক বেশি কাজ করতে পারে। অনেক অনেক ধন্যবাদ
আজিজ

বাশের নতুন সংস্করণগুলি নিয়মিত প্রকাশও করতে পারে, কখনও কখনও এটি সহজ কাজের জন্য যথেষ্ট এবং এমনকি সেড ব্যবহার করার প্রয়োজন নেই।
ভেষ্ট

এবং কী ভেষ্ট বলেছেন তা পুনরায় করুন, যদি কেউ না জানে। সাইগউইনের বাশ আছে
বারলপ


1
@KennyEvitt cmd শেল এটা প্রদর্শন এবং ইউনিকোড UTF8 chcp 65001 জন্য chcp ব্যবহারের (যেমন যদি বলো, utf16 encoding.chcp 1200 এবং chcp 12001 সমর্থিত নয়) পেতে একটি খামচি প্রয়োজন stackoverflow.com/questions/9321419/... নিশ্চিত নন পুনরায় mintty। পুনরায় পাওয়ার শেল নিশ্চিত নয়। তবে ইউটিএফ -8 সেন্টিমিডি বা পাওয়ারশেলের ঠিক আছে supported এতক্ষণ যে কোনও সমর্থনকারী ফন্টটি কুরিয়ার নতুনের মতো ব্যবহৃত হয়, এবং এটি কোডপেজ 00৫০০১ অবধি থাকে a ইউটিএফ ১ enc এনকোডিংয়ের জন্য একটি সেন্টিমিটার / ইউ থাকে।
বারলপ

26

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

পার্ল সামঞ্জস্যপূর্ণ নিয়মিত এক্সপ্রেশন (পিসিআরই) ব্যবহার করে পাঠ্য ফাইলগুলিতে পাঠ্য সন্ধান এবং প্রতিস্থাপনের জন্য rxrepl একটি মাইক্রোসফ্ট উইন্ডোজ কমান্ড লাইন সরঞ্জাম।

এটিতে নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

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

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


4
এটা চমৎকার! তুমি কি আমাকে এবং প্রয়োজন উদাহরণ মত হন, তাহলে এই প্রতিস্থাপন "foofighters" একটি ফাইলের মধ্যে সঙ্গে "FOOBAR": rxrepl.exe -f file.txt যাও -a -s "(foo বিন্যাস) বার" -r "\ 1fighters"
Dunc

1
এছাড়াও, আপনি কি গিথুবের মতো কোনও কিছুর উত্স পেয়েছেন? সামগ্রিকভাবে বোধগম্য যদি এটি ওপেন সোর্স হিসাবে বোঝানো না হয় তবে আমি খুব কৌতূহলী।
kayleeFrye_onDeck

1
@ স্টেজট্রিক সত্যিই? আমি C:\WINDOWS\System32\cmd.exe
-৪

1
দুর্দান্ত সরঞ্জাম! উইন্ডোজ সার্ভার স্ট্যান্ড 2012 আর 2 এক্স 64 এর অধীনে সমস্যা ছাড়াই চলছে। ধন্যবাদ!
kwrl

2
গ্রেট টুল, আমি আশা করি আপনি এখনও এটা বজায় রাখার করছি
স্বাদহীন

12

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

এটি শুরু করুন, নিম্নলিখিতটি চালান (একটি এর *সাথে প্রতিস্থাপন করতে @):

(Get-Content C:\Scripts\Test.txt) | 
Foreach-Object {$_ -replace "\*", "@"} | 
Set-Content C:\Scripts\Test.txt

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


1
নোটপ্যাড ++ সংস্করণ 6 হিসাবে সম্পূর্ণ পিসিআরআই সমর্থন করে
বব

5

আমি তার জন্য fnr.exe খুঁজে পেয়েছি । এটিতে জিইউআই এবং কমান্ড-লাইন রয়েছে।

একাধিক ফাইলে পাঠ্য সন্ধান এবং প্রতিস্থাপনের জন্য একটি মুক্ত উত্স সরঞ্জাম।

বৈশিষ্ট্য

  • একক ফাইল ডাউনলোড করুন - fnr.exe (127kb)
  • উইন্ডোজ অ্যাপ্লিকেশন ব্যবহার করে বা কমান্ড লাইনের মাধ্যমে একাধিক ফাইলগুলিতে পাঠ্য প্রতিস্থাপন করুন
  • ম্যাচগুলি কোথায় পাওয়া যায় তা দেখতে কেবল সন্ধান করুন
  • কেস-সংবেদনশীল অনুসন্ধান
  • একটি ডিরেক্টরিতে ফাইল অনুসন্ধান করা বা উপ-ডিরেক্টরি পুনরাবৃত্তি করা
  • নিয়মিত অভিব্যক্তি
  • মাল্টি-লাইন পাঠ্যটি সন্ধান করুন এবং প্রতিস্থাপন করুন
  • ব্যাচ ফাইলে রাখার জন্য কমান্ড লাইন পাঠ্য তৈরি করতে কমান্ড লাইন বোতাম উত্পন্ন করুন
  • কমান্ড লাইন সহায়তা
  • সন্ধান / প্রতিস্থাপন ইঞ্জিনের ইউনিট পরীক্ষা

কমান্ড লাইন বিকল্পগুলি দেখুন

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


1
খুব সুন্দর - আপনি জিইউআইতে আপনার "সন্ধান" বিবৃতিটি পরীক্ষা করতে পারেন, "জেনারেল রিপ্লেস কমান্ড লাইন" ক্লিক করতে পারেন এবং কমান্ড লাইন কলটি ব্যবহার করতে প্রস্তুত হন। কমান্ড লাইন সিনট্যাক্সের সাথে পরিচিত হতে সময় ব্যয় করার দরকার নেই।
shar

পরিবর্তনগুলি করার পরে আমি এই প্রস্থান করার ব্যবস্থা করতে পারিনি। স্ক্রিপ্টিং
জি- এর

@ জি। এটি কোনও ব্যাচ ফাইল থেকে চালিত হলে <এন্টার> অপেক্ষা করছে না।
সার্জিয়াস

আমি আলাদা ফাইল নাম / এক্সটেনশনে আউটপুট দেওয়ার কোনও উপায় খুঁজে পাইনি
রিক

4

দেখে মনে হচ্ছে আপনি এফআইএনডিএসআরটি দিয়ে রেজিেক্স ব্যবহার করতে পারেন

সন্ধানকারী [উইন্ডোজ সিএমডি] :

সন্ধানকারী পাঠ্য সন্ধান করতে দেয় (ফাইল-ফাইলের নামের ধরণ হিসাবে নির্দিষ্ট করা হয়েছে। যদি ফাইল-নামটিতে ওয়াইল্ডকার্ড থাকে (* বা?), এটি মেলে এমন সমস্ত ফাইলগুলিতে অনুসন্ধান করে। বিকল্প / এস বর্তমান ডিরেক্টরিতে অনুসন্ধান করে পাশাপাশি এর উপ-ডিরেক্টরিতে যদি প্যাটার্নে ফাঁকা স্থান থাকে তবে এটি অবশ্যই / সি এর মতো নির্দিষ্ট করতে হবে: "কিছু পাঠ্য অনুসন্ধান করতে হবে"। নিয়মিত অভিব্যক্তিগুলিতে প্যাটার্নটি পরিবর্তন করতে অবশ্যই / আর বিকল্পটি অবশ্যই ব্যবহার করা উচিত। অবশ।

FindStr এর সহায়তা ( Findstr /?) থেকে:

/ আর - অনুসন্ধানের স্ট্রিংগুলিকে নিয়মিত অভিব্যক্তি হিসাবে ব্যবহার করে।

Regular expression quick reference:
  .        Wildcard: any character
  *        Repeat: zero or more occurrences of previous character or class
  ^        Line position: beginning of line
  $        Line position: end of line
  [class]  Character class: any one character in set
  [^class] Inverse class: any one character not in set
  [x-y]    Range: any characters within the specified range
  \x       Escape: literal use of metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word

আপনার উত্তরের জন্য আপনাকে ধন্যবাদ, কিন্তু এটি আমার প্রশ্ন ছিল না।
আজিজ

2
findstrফাইলগুলিতে পাঠ্য প্রতিস্থাপন করতে পারবেন না!
কেনি এভিট

4

আমি পার্টিতে কিছুটা দেরি করেছি, তবে জেআরইপিএল.ব্যাট হাইডব্রিড জেএসক্রিপ্ট / ব্যাচ স্ক্রিপ্ট ভিত্তিক রেজেক্স ইউটিলিটি যা এক্সপি থেকে কোনও উইন্ডোজ মেশিনে নেটিভভাবে চালিত হয়।

সম্পূর্ণ ডকুমেন্টেশন স্ক্রিপ্টটিতে অন্তর্নির্মিত হয়, যার মাধ্যমে অ্যাক্সেস করা যায় JREPL /?, বা JREPL /??পেজড আউটপুট ব্যবহার করা যায়।

জেআরপিএল স্ট্যান্ডার্ড ইসিএমএ রেজেেক্স ব্যবহার করে যা জেএসক্রিপ্ট সহ আসে। ECMA রেজেক্স পাওয়ারশেলের জন্য উপলব্ধ .NET রেজেক্সের মতো যথেষ্ট শক্তিশালী নয় তবে এটি এখনও বেশ সুন্দর। এবং আমি মনে করি গড় ব্যবহারকারীরা পাওয়ারশেলের চেয়ে এই ইউটিলিটিটি ব্যবহার করা আরও সহজ খুঁজে পাবেন।

অন্তর্নির্মিত জেআরপিএল বিকল্পগুলি ইতিমধ্যে প্রচুর অন্তর্নিহিত শক্তি সরবরাহ করে, তবে ব্যবহারকারীরা সরবরাহ করা জেএসক্রিপট প্রকৃতপক্ষে আশ্চর্যজনক সম্ভাবনা খুলে দেয়।

আমি স্ক্রিপ্টটি তৈরি করেছি কারণ আমার কর্মক্ষেত্রটি অ-মানক এক্সী ফাইলগুলি ডাউনলোড করার অনুমতি দেয় না, তবে ব্যাচ বা জেএসক্রিপ্ট স্ক্রিপ্টগুলি লেখার ক্ষেত্রে কোনও বিধিনিষেধ নেই :-)

কেবল লিঙ্কটি অনুসরণ করুন এবং স্ক্রিপ্ট কোডটি JREPL.BAT নামের একটি ফাইলে অনুলিপি করুন। ব্যবহার এবং বিকাশের ইতিহাসের উদাহরণগুলির জন্য সেই থ্রেড থেকে পরবর্তী পোস্টগুলি পড়ুন। এছাড়াও অনেকগুলি স্ট্যাকওভারফ্লো উত্তর রয়েছে যা জেআরপিএল.ব্যাট ব্যবহার করে।


3

দুটি ভাল পছন্দ হ'ল সাইগউইন যা আপনাকে ইউনিক্সের মতো, বাশ-জাতীয় পরিবেশ দেবে (সেমিডি.এক্সির বিকল্প); এবং Unxutils , Win32 ব্যক্তিগত ইউনিক্স ইউটিলিটিগুলির সংগ্রহের পোর্ট। উভয়ই প্যাকেজে 'সেড', 'অ্যাডক', এবং 'গ্রেপ' দেখুন।


2
অবাস্তব পুরাতন। এখন জিনিসটি gnuwin32
বার্লপ

আপনার পরামর্শের জন্য আপনাকে জে রবার্ট ধন্যবাদ। দুঃখিত যে আমি এটিকে আন্ডারস্টোড করি নি তবে এখন দেখতে পাচ্ছি যে এসইডি জিনিসটি ছিল।
আজিজ

2018 এর হিসাবে @ বার্লপ, gnuwin32 এখনও পুরানো .. সাইগউইন আরও আধুনিক!
বারলপ

0

আপনি কমান্ড লাইন অনুসন্ধান এবং প্রতিস্থাপন করতে জিএসএআর ব্যবহার করতে পারেন। হেক্স এবং বাইনারি পাশাপাশি কাজ করে। এটি জটিল ভারী উত্তোলন করবে না যা রেজেক্স সম্পাদন করতে পারে তবে প্রাথমিক অনুসন্ধান এবং প্রতিস্থাপনের জন্য এটি দ্রুত এবং সহজেই কাজটি করে।

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