সতর্কতা: এটি একটি বিপজ্জনক পদ্ধতি! এটি লিনাক্সে এবং / বাফারগুলির নির্দিষ্ট বিকল্পগুলির সাথে আই / ও বাফারগুলিকে আপত্তিজনক ব্যবহার করে এটি ছোট ফাইলগুলিতে কাজ করে। এটি একটি আকর্ষণীয় কৌতূহল। তবে এটি বাস্তব পরিস্থিতির জন্য ব্যবহার করবেন না!
-i
বিকল্পের পাশাপাশি sed
আপনি tee
ইউটিলিটিটি ব্যবহার করতে পারেন ।
থেকে man
:
টি - স্ট্যান্ডার্ড ইনপুট থেকে পড়ুন এবং স্ট্যান্ডার্ড আউটপুট এবং ফাইলগুলিতে লিখুন
সুতরাং, সমাধানটি হ'ল:
sed s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html | tee | tee index.html
- tee
পাইপলাইনটি বাফার হয়েছে কিনা তা নিশ্চিত করার জন্য এখানে পুনরাবৃত্তি করা হয়েছে । তারপরে পাইপলাইনে থাকা সমস্ত কমান্ডগুলি কাজ করার জন্য কিছু ইনপুট না পাওয়া পর্যন্ত অবরুদ্ধ করা হবে। পাইপলাইনের প্রতিটি কমান্ড শুরু হয় যখন আপস্ট্রিম কমান্ডগুলি কমান্ডের ইনপুটটিতে 1 টি বাফার (আকারটি কোথাও সংজ্ঞায়িত ) লেখা থাকে। সুতরাং শেষ কমান্ডtee index.html
, যা লেখার জন্য ফাইলটি খোলায় এবং তাই এটি খালি করে, আপস্ট্রিম পাইপলাইন শেষ হওয়ার পরে চলে এবং পাইপলাইনের মধ্যে আউটপুট বাফারে থাকে।
সম্ভবত নিম্নলিখিতটি কাজ করবে না:
sed s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html | tee index.html
- এটি কোনও বাধা ছাড়াই একই সাথে পাইপলাইনের উভয় কমান্ড চালাবে। (পাইপলাইন ব্লক ছাড়া বাফার দ্বারা বাফার পরিবর্তে লাইন দ্বারা বাইট লাইন পাস করা উচিত। যখন আপনি চালাতে হিসাবে একই cat | sed s/bar/GGG/
ব্লক এটি আরো ইন্টারেক্টিভ এবং সাধারণত 2 কম্যান্ডের পাইপলাইনগুলি বাফারিং এবং ব্লক করা ছাড়াই চালানো ছাড়া।। আর পাইপলাইনগুলি বাফার করা হয়।) tee index.html
ইচ্ছা লেখার জন্য ফাইলটি খুলুন এবং এটি খালি করা হবে। তবে আপনি যদি সর্বদা বাফারিং চালু করেন তবে দ্বিতীয় সংস্করণটিও কার্যকর হবে।
perl -pi -w -e 's/STRING_TO_REPLACE/REPLACE_WITH/g;' index.html