একটি sort
সমস্ত ইনপুট দেখতে আগেই আউটপুট শুরু করতে পারবেন। এই কারণে, sort
প্রোগ্রামটি সহজেই স্থানটিতে কোনও ফাইল সংশোধন করার জন্য একটি বিকল্প প্রস্তাব করতে পারে:
sort temp.txt -o temp.txt
বিশেষত, জিএনইউয়ের নথিsort
বলছে:
সাধারণত, সাজানো আউটপুট-ফাইল খোলার আগে সমস্ত ইনপুট পড়ে, তাই আপনি sort -o F F
এবং এর মতো কমান্ড ব্যবহার করে কোনও ফাইলকে নিরাপদে জায়গায় বাছাই করতে পারেন cat F | sort -o F
। যাইহোক, ( ) sort
দিয়ে সমস্ত ইনপুট পড়ার আগে আউটপুট ফাইলটি খুলতে পারে, সুতরাং কোনও কমান্ড নিরাপদ নয় যেমন বাছাই করা এটি পড়া শেষ হওয়ার আগে লিখতে শুরু করে।--merge
-m
cat F | sort -m -o F - G
F
cat
বিএসডির নথি sort
বলছে:
যদি [আউটপুট-ফাইল ইনপুট ফাইলগুলির মধ্যে একটি হয়, তবে আউটপুটকে [আউটপুট-ফাইলে বাছাই এবং লেখার আগে এটি অস্থায়ী ফাইলে অনুলিপি করে।
কমান্ডগুলি যেমন uniq
ইনপুট পড়া শেষ করার আগে আউটপুট লেখা শুরু করতে পারে। এই কমান্ডগুলি সাধারণত ইন-প্লেস সম্পাদনা সমর্থন করে না (এবং তাদের পক্ষে এই বৈশিষ্ট্যটি সমর্থন করা শক্ত হবে)।
আপনি প্রায়শই একটি অস্থায়ী ফাইল নিয়ে এটিকে ঘিরে কাজ করেন বা আপনি যদি কোনও মধ্যবর্তী ফাইলটি একেবারে এড়াতে চান তবে আপনি সম্পূর্ণ ফলাফলটি লেখার আগে এটি সংরক্ষণ করতে বাফার ব্যবহার করতে পারেন। উদাহরণস্বরূপ, এর সাথে perl
:
uniq temp.txt | perl -e 'undef $/; $_ = <>; open(OUT,">temp.txt"); print OUT;'
এখানে পার্ল অংশটি uniq
ভেরিয়েবল থেকে সম্পূর্ণ আউটপুট পড়ে $_
এবং তারপরে এই ডেটা দিয়ে মূল ফাইলটি ওভাররাইট করে। আপনি নিজের পছন্দের স্ক্রিপ্টিং ভাষায়ও এটি করতে পারেন, সম্ভবত বাশেও। তবে মনে রাখবেন যে পুরো ফাইলটি সংরক্ষণ করার জন্য এটি পর্যাপ্ত মেমরির প্রয়োজন হবে, বড় ফাইলগুলির সাথে কাজ করার সময় এটি পরামর্শ দেওয়া হয় না।