একটি বিষয় লক্ষণীয়, sed
সেডের একমাত্র উদ্দেশ্য "স্ট্রিম" এ সম্পাদক হিসাবে কাজ করা (অর্থাত্ স্ট্ডিন, স্ট্ডআউট, স্টার্ডার এবং অন্যান্য >&n
বাফার, সকেট এবং এর মতো) এর সম্পাদক হিসাবে কাজ করা একটি বিষয় লক্ষ্য করুন sed এটি মনে রেখে আপনি অন্য কমান্ড tee
ব্যবহার করে ফাইলে ফিরে আউটপুট লিখতে পারেন । অন্য বিকল্পটি হ'ল সামগ্রীটিকে পাইপ করা থেকে প্যাচ তৈরি করা diff
।
টি পদ্ধতি
sed '/regex/' <file> | tee <file>
প্যাচ পদ্ধতি
sed '/regex/' <file> | diff -p <file> /dev/stdin | patch
হালনাগাদ:
এছাড়াও, নোট করুন যে প্যাচটি পৃথক আউটপুটটির 1 লাইন থেকে ফাইলটি পরিবর্তন করবে:
ডিফ থেকে আউটপুটটির প্রথম লাইনে এটি পাওয়া যায় কারণ কোন ফাইলটি অ্যাক্সেস করতে প্যাচটি জানতে হবে না:
$ echo foobar | tee fubar
$ sed 's/oo/u/' fubar | diff -p fubar /dev/stdin
*** fubar 2014-03-15 18:06:09.000000000 -0500
--- /dev/stdin 2014-03-15 18:06:41.000000000 -0500
***************
*** 1 ****
! foobar
--- 1 ----
! fubar
$ sed 's/oo/u/' fubar | diff -p fubar /dev/stdin | patch
patching file fubar
-i
গনু সেডে একটি বিকল্প, তবে মানক সেডে নয়। যাইহোক, এটি সামগ্রীটিকে একটি নতুন ফাইলে প্রবাহিত করে এবং তারপরে ফাইলটির নামকরণ করে যাতে এটি আপনি চান তা নয়।