CLI ওয়ান-লাইনার্স দিয়ে ফাইল এডিটিং করা

PowerShell:
CLI ওয়ান-লাইনার্স দিয়ে ফাইল এডিটিং করা

কিভাবে করবেন:

একটি একক ফাইলে টেক্সট প্রতিস্থাপন

চলুন একটি সাধারণ কাজ দিয়ে শুরু করি: আপনি চান example.txt নামক একটি ফাইলে “oldtext” এর সব ঘটনা প্রসঙ্গকে “newtext” এ প্রতিস্থাপন করতে। এটি কিভাবে করবেন তার উপায় নিম্নরূপ:

(Get-Content example.txt) -replace 'oldtext', 'newtext' | Set-Content example.txt

এই ওয়ান-লাইনারটি বিষয়বস্তুটি পড়ে, প্রতিস্থাপন করে, এবং মূল ফাইলে বিষয়বস্তুটি লিখে।

একাধিক ফাইলে সম্পাদনা

একাধিক ফাইলে একই পরিবর্তন প্রয়োগ করতে চাইলে কি হবে? এখানে একটি লুপ ব্যবহার করে একটি উপায় দেওয়া হল:

Get-ChildItem *.txt | ForEach-Object {
  (Get-Content $_) -replace 'oldtext', 'newtext' | Set-Content $_
}

এই স্নিপেটটি বর্তমান ডিরেক্টরিতে সব .txt ফাইল খুঁজে বের করে, প্রতিটিতে “oldtext” কে “newtext” দিয়ে প্রতিস্থাপন করে।

ফাইলের শুরু বা শেষে বিষয়বস্তু যোগ

বিষয়বস্তু যোগ করা বা সংযুক্ত করা আরও স্রোতস্বিনী হতে পারে:

# সংযোজন
"New first line`n" + (Get-Content example.txt) | Set-Content example.txt

# যোজন
(Get-Content example.txt) + "`nNew last line" | Set-Content example.txt

এখানে, আমরা শুধুমাত্র নতুন বিষয়বস্তুটি মৌজুদা বিষয়বস্তুর আগে বা পরে যুক্ত করে এবং এটি সঞ্চয় করি।

গভীর ডাইভ

ঐতিহাসিকভাবে, স্থানে সম্পাদনা প্রায়শই ইউনিক্স টুলস যেমন sed এবং awk এর সাথে জড়িত। পাওয়ারশেল, সাম্প্রতিক একটি প্রবেশকারী হিসেবে, বাক্স থেকে সরাসরি কোনও স্থানে সম্পাদনা বৈশিষ্ট্য অন্তর্ভুক্ত করে না। এটি আংশিকভাবে এর নকশা দর্শনের কারণে, যা পাঠ্যধারার উপর বস্তুর গুরুত্ব হাইলাইট করে, ইউনিক্স টুলসের বিপরীতে যা বেশিরভাগ ইনপুটকে পাঠ্য হিসেবে বিবেচনা করে।

এই কাজের জন্য পাওয়ারশেলের বিকল্পের মধ্যে রয়েছে Cygwin অথবা Windows Subsystem for Linux (WSL) এর মাধ্যমে উইন্ডোজে উপলব্ধ ঐতিহ্যবাহী ইউনিক্স টুলস ব্যবহার করা। এই টুলগুলি পাঠ্য-কেন্দ্রীয় নকশার কারণে স্থানে সম্পাদনার জন্য একটি আরও সংক্ষিপ্ত সিন্ট্যাক্স প্রদান করে থ