ठीक है, इसलिए @Prvt_Yadv के लिए धन्यवाद मैं डॉट्स को समझने में सक्षम था। यहाँ पहला सवाल का जवाब है:
दूसरी tr
कमान के पीछे क्या जादू है ?
13 डॉट्स बस दूसरे सेट से पहले 13 अक्षरों में मैप किए जा रहे हैं। इसलिए
tr .............A-Z A-ZA-Z
निम्नलिखित सेट का उत्पादन करेगा:
SET1 -> .............ABCDEFGHIJKLMNOPQRSTUVXWYZ
SET2 -> ABCDEFGHIJKLMNOPQRSTUVXWYZABCDEFGHIJKLMNOPQRSTUVXWYZ
यदि आपके इनपुट में डॉट नहीं है, तो आप प्रारंभिक अनुक्रम को छोड़ सकते हैं, क्योंकि आप उन प्रतिस्थापन का उपयोग नहीं करेंगे। फिर सेट बनेंगे:
SET1 -> ABCDEFGHIJKLMNOPQRSTUVXWYZ
SET2 -> NOPQRSTUVXWYZABCDEFGHIJKLMNOPQRSTUVXWYZ
लेकिन चूंकि पहले सेट में पहले से ही सभी 26 अक्षर होते हैं और set2 में दोहराए जाने वाले अक्षर होते हैं, इसलिए उन्हें छोड़ दिया जाता है, अंत में बन जाता है
SET1 -> ABCDEFGHIJKLMNOPQRSTUVXWYZ
SET2 -> NOPQRSTUVXWYZABCDEFGHIJKLM
जो रोट 13 सबस्टेशन है और पहले कमांड के समान है (यहां कम मामलों से निपटने के अलावा नहीं)। प्रश्न के शीर्षक के लिए एक ही तर्क लागू किया जा सकता है:
tr ...A-Z A-ZA-Z <<< “JVPQBOV”
सेट का उत्पादन होगा:
SET1 -> ...ABCDEFGHIJKLMNOPQRSTUVXWYZ
SET2 -> ABCDEFGHIJKLMNOPQRSTUVXWYZABCDEFGHIJKLMNOPQRSTUVXWYZ
प्रारंभिक अनुक्रम और अनुगामी दोहराए जाने वाले पत्रों के बारे में:
SET1 -> ABCDEFGHIJKLMNOPQRSTUVXWYZ
SET2 -> DEFGHIJKLMNOPQRSTUVXWYZABC
कौन सा रोट 3 सबस्टेशन है।
अब दूसरे प्रश्न के लिए:
दूसरे कमांड को लोअर और अपर केस दोनों के लिए कैसे काम करना है, पहले कमांड की तरह?
यह काम करने के लिए आप शुरुआत में डॉट्स की वांछित संख्या डालते हैं, अपने रोट और 26 डॉट्स को ऊपरी अनुक्रम और निचले अनुक्रम के बीच मिलान करते हैं, बस इस तरह:
tr ........A-Z..........................a-z A-ZA-Za-za-z
यह सफलतापूर्वक एक असंवेदनशील सड़ांध पैदा करेगा। यह देखने के लिए कि यह क्यों काम करता है सेट देखें:
SET1 -> ........ABCDEFGHIJKLMNOPQRSTUVXWYZ..........................abcdefghijklmnopqrstuvxwyz
SET2 -> ABCDEFGHIJKLMNOPQRSTUVXWYZABCDEFGHIJKLMNOPQRSTUVXWYZabcdefghijklmnopqrstuvxwyzabcdefghijklmnopqrstuvxwyz
डॉट्स मैपिंग और अनुगामी पत्रों को छोड़कर:
SET1 -> ABCDEFGHIJKLMNOPQRSTUVXWYZabcdefghijklmnopqrstuvxwyz
SET2 -> IJKLMNOPQRSTUVXWYZABCDEFGHijklmnopqrstuvxwyzabcdefgh
अब यह ऊपरी और निचले दोनों मामलों के लिए काम करता है :)
इसका काम करने का एक और तरीका यह है tr
कि अनुसरण के रूप में दो कमांड का उपयोग करें:
tr .............A-Z A-ZA-Z <<< "ABJ V hqrefgnaq" | tr .............a-z a-za-z
डॉट्स प्रतिस्थापन का उपयोग करने के लिए एक चेतावनी @iruvar द्वारा दी गई थी: यह कमांड अपेक्षित नहीं होगा जब इनपुट स्ट्रिंग में डॉट्स होते हैं। ऐसा इसलिए है क्योंकि डॉट्स को अन्य अक्षरों में मैप किया जा रहा है और प्रतिस्थापन करते समय, tr
इनपुट मैप को अंतिम मैप किए गए अक्षर में बदल देगा। लेकिन आप वास्तव में डॉट्स की तुलना में किसी अन्य चरित्र का उपयोग कर सकते हैं। इसलिए, यदि आपके tr
आदेश में डॉट्स का उपयोग करना एक समस्या है, तो आप @
इसके बजाय उपयोग कर सकते हैं , उदाहरण के लिए। यह ठीक काम करेगा:
tr @@@@@@@@@@@@@A-Z A-ZA-Z <<< "GUNAX LBH NYY..."