ঠিক আছে, সুতরাং @ প্রাইভেট_ ইয়াদভিকে ধন্যবাদ আমি বিন্দুগুলি বুঝতে সক্ষম হয়েছি। এখানে প্রথম প্রশ্নের উত্তর:
দ্বিতীয় tr
কমান্ডের পিছনে যাদু কী ?
13 টি বিন্দুগুলি কেবল দ্বিতীয় সেট থেকে প্রথম 13 টি অক্ষরে ম্যাপ করা হচ্ছে। সুতরাং
tr .............A-Z A-ZA-Z
নিম্নলিখিত সেট উত্পাদন করবে:
SET1 -> .............ABCDEFGHIJKLMNOPQRSTUVXWYZ
SET2 -> ABCDEFGHIJKLMNOPQRSTUVXWYZABCDEFGHIJKLMNOPQRSTUVXWYZ
যদি আপনার ইনপুটটিতে কোনও বিন্দু না থাকে তবে আপনি প্রাথমিক ক্রমটি বাতিল করতে পারেন, যেহেতু আপনি সেই বিকল্পগুলি ব্যবহার করবেন না। তারপরে সেটগুলি হয়ে উঠবে:
SET1 -> ABCDEFGHIJKLMNOPQRSTUVXWYZ
SET2 -> NOPQRSTUVXWYZABCDEFGHIJKLMNOPQRSTUVXWYZ
তবে যেহেতু প্রথম সেটটিতে ইতিমধ্যে সমস্ত 26 টি অক্ষর রয়েছে এবং সেট 2 এর পিছনে অক্ষরটি পুনরাবৃত্তি করেছে, সেগুলি খুব বেশি ফেলে দেওয়া হয়, অবশেষে হয়ে যায়
SET1 -> ABCDEFGHIJKLMNOPQRSTUVXWYZ
SET2 -> NOPQRSTUVXWYZABCDEFGHIJKLM
যা পচা প্রতিস্থাপন এবং প্রথম কমান্ডের অনুরূপ (এখানে ছোট ছোট মামলার সাথে ডিল না করে)। প্রশ্নের শিরোনামের জন্য একই যুক্তি প্রয়োগ করা যেতে পারে:
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..."