tr a </ etc / मेजबान | सॉर्ट -r | pr -d> / etc / मेजबान


9

इस पंक्ति में:

tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts 

अपेक्षित परिणाम क्या होगा? मुझे पता है कि लोअरकेस 'ए' अपरकेस में बदल जाएगा 'ए' लेकिन आगे क्या है? क्या मूल फ़ाइल को फिर से लिखा जाएगा क्योंकि रीडायरेक्ट उसी फ़ाइल नाम के लिए है?


आपको एक bash: /etc/hosts: Permission deniedत्रुटि मिलनी चाहिए (यह मानते हुए कि आपका शेल बैश है), जब तक आप इसे इस रूप में नहीं चला रहे हैं root/etc/hostsआम तौर पर केवल जड़ से लिखने योग्य है। Iff आप इसे चला रहे हैं root(जो आपको वास्तव में नहीं करना चाहिए), आपको एक खाली मिलेगा /etc/hostsजैसा कि माइकल होमर ने समझाया है।
अरीफ

जवाबों:


17

अपेक्षित परिणाम एक रिक्त /etc/hostsफ़ाइल है।

पुनर्निर्देशन > /etc/hostsहोता है और फ़ाइल ट्रंकेटस से पहले कार्यक्रमों का प्रदर्शन शुरू हो और trफ़ाइल से पढ़ने का शुरू होता है।

आउटपुट को लिखने के लिए /etc/hosts, आप फ़ाइल की एक प्रतिलिपि के साथ काम कर सकते हैं (या अपनी आउटपुट फ़ाइल को बाद में स्थानांतरित कर सकते हैं), या अधिक जानकारी से spongeकमांड का उपयोग करें , जो मानक इनपुट को भिगो देगा और फ़ाइल में लिख देगा:

tr a A < /etc/hosts | sort -r | pr -d | sponge /etc/hosts

उस मामले में, प्रत्येक "एक" में /etc/hostsकिया जाएगा प्रतिस्थापित 'ए' के साथ, सभी लाइनों की जाएगी रिवर्स में अपने स्थान के अनुसार छाँटे गए , एक रिक्त पंक्ति प्रत्येक पंक्ति के बीच डाला जाएगा , और परिणाम में रखा जाएगा /etc/hosts


आप उपयोगी भी पा सकते हैं:


1
यह स्पष्ट करने के लिए कि मुझे जिस तरह से लिखा गया है उससे मुझे क्या उम्मीद करनी चाहिए और अपेक्षित परिणाम प्राप्त करने के लिए कैसे लिखा जा सकता है, इसके लिए बहुत-बहुत धन्यवाद।
tdharrison

moreutils एक बहुत बढ़िया टूल-सूट है
रॉबर्ट रिडेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.