एक sortसभी इनपुट को देखने के लिए इससे पहले कि यह उत्पादन के लिए शुरू कर सकते हैं की जरूरत है। इस कारण से, sortप्रोग्राम आसानी से फ़ाइल को इन-प्लेस करने के लिए एक विकल्प प्रदान कर सकता है:
sort temp.txt -o temp.txt
विशेष रूप से, GNUsort का प्रलेखन कहता है:
आम तौर पर, सॉर्ट आउटपुट-फ़ाइल खोलने से पहले सभी इनपुट को पढ़ता है, इसलिए आप सुरक्षित रूप से 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चर से पूरा आउटपुट पढ़ता है $_और फिर इस डेटा के साथ मूल फ़ाइल को ओवरराइट करता है। आप अपनी पसंद की स्क्रिप्टिंग भाषा में भी ऐसा कर सकते हैं, शायद बैश में भी। लेकिन ध्यान दें कि संपूर्ण फ़ाइल को संग्रहीत करने के लिए पर्याप्त मेमोरी की आवश्यकता होगी, बड़ी फ़ाइलों के साथ काम करते समय यह उचित नहीं है।