লিনাক্স এবং ইউনিক্স সিস্টেমে, tr একটি কমান্ড-লাইন ইউটিলিটি যা অনুবাদ করে, মুছে দেয় এবং “squeezes ” পুনরাবৃত্তি অক্ষর – আসলে, tr মানে “অনুবাদ " এই নির্দেশিকাটি উদাহরণ সহ ব্যাখ্যা করে কিভাবে লিনাক্সে tr কমান্ড ব্যবহার করতে হয়। এটি ক্রিয়াকলাপের জন্য ব্যবহার করা যেতে পারে যেমন বারবার অক্ষর মুছে ফেলা, ছোট হাতের অক্ষরকে বড় হাতের অক্ষরে রূপান্তর করা এবং অক্ষরগুলির মৌলিক প্রতিস্থাপন এবং অপসারণ। এটি প্রায়শই পাইপিংয়ের মাধ্যমে অন্যান্য কমান্ডের সাথে একত্রে ব্যবহৃত হয়।
লিনাক্স হল মৌলিক কার্নেল/অপারেটিং সিস্টেমের মূল ভিত্তি যা আমরা প্রতিদিনের ভিত্তিতে ব্যবহার করি, অ্যান্ড্রয়েড সহ - আমাদের অনেকের মোবাইল ফোনে প্ল্যাটফর্ম থাকবে। এটি ওপেন সোর্স এবং সহজেই কনফিগার করা যায়।
tr কমান্ড কিভাবে ব্যবহার করবেন
tr কমান্ড চালানোর জন্য সিনট্যাক্স নিম্নরূপ, যেখানে SET1-এর অক্ষরগুলি SET2-এর অক্ষরে অনুবাদ করতে হবে৷ :
tr OPTION... SET1 [SET2]
tr কমান্ড দুটি সেট অক্ষর গ্রহণ করে (সাধারণত একই দৈর্ঘ্য)। এটি তারপরে প্রথম সেটের অক্ষরগুলিকে দ্বিতীয় সেটের সংশ্লিষ্ট অক্ষরগুলির সাথে প্রতিস্থাপন করে। এই পরিস্থিতিতে, একটি SET এটি অক্ষরের একটি স্ট্রিং এবং এতে বিশেষ ব্যাকস্ল্যাশ-এস্কেপড অক্ষর রয়েছে৷
উদাহরণ
অক্ষরের একটি পরিসর ব্যবহার করা
আপনি চাইলে ক্যারেক্টার ক্লাসের পরিবর্তে রেঞ্জ ব্যবহার করতে পারেন যদি আপনি চান:
echo 'hello' | tr 'a-z' 'A-Z'
অন্যভাবে রূপান্তর করতে, কেবল সেটগুলির স্থানগুলি পরিবর্তন করুন৷
৷কেস রূপান্তর করুন
বড় হাতের হাতকে ছোট হাতের বা তার বিপরীতে রূপান্তর করা হল tr কমান্ডের সবচেয়ে সাধারণ ব্যবহারের ক্ষেত্রে।
[:lower:] সব ছোট হাতের অক্ষর মেলে, এবং [:upper:] সব বড় হাতের অক্ষর মেলে।
echo 'Hello' | tr '[:lower:]' '[:upper:]' HELLO
খালি লাইনগুলি সরান
ফাঁকা লাইন মুছে ফেলার জন্য, আপনাকে “squeez করতে হবে ” পুনরাবৃত্তিমূলক নতুন লাইন অক্ষর:
tr -s '\n' < input.txt > output.txt
উপরে, আমরা পুনঃনির্দেশ চিহ্ন ব্যবহার করছি, যেটি তারপর output.txt-এ কমান্ডের আউটপুট লেখে। .
সকল অ-সংখ্যাসূচক অক্ষর সরান
নিম্নলিখিত কমান্ডটি সমস্ত অ-সংখ্যাসূচক অক্ষর মুছে দেয়:
echo "The account number is 10879358" | tr -cd [:digit:]
[:digit:] সমস্ত অঙ্কের অক্ষরগুলির জন্য দাঁড়ায়। -c ব্যবহার করে বিকল্পে, কমান্ডটি অ-সংখ্যাসূচক অক্ষরগুলিকে সরিয়ে দেয়। পরবর্তী আউটপুট এইরকম দেখাবে:
10879358
একটি নতুন লাইনে $PATH ডিরেক্টরি প্রিন্ট করুন
$PATH এনভায়রনমেন্টাল ভেরিয়েবল হল ডিরেক্টরিগুলির একটি তালিকা (কোলন ডিলিমিটেড) যা শেলকে বলে যে আপনি কমান্ড টাইপ করার সময় এক্সিকিউটেবল ফাইলগুলির জন্য কোন ডিরেক্টরিগুলি দেখতে হবে। প্রতিটি ডিরেক্টরিকে একটি পৃথক নতুন লাইনে মুদ্রণ করতে, আমাদের কোলন (:) এর সাথে মিলতে হবে ) এবং তারপর এটিকে নতুন লাইন কমান্ড দিয়ে প্রতিস্থাপন করুন:
echo $PATH | tr ':' '\n' /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /snap/bin
প্রতিটি শব্দকে একটি নতুন লাইনে রাখুন
এটি করার জন্য, আমাদের সমস্ত অক্ষরগুলিকে মেলাতে হবে (যেগুলি আলফা-সংখ্যার নয় ) এবং তারপর একটি নতুন লাইন দিয়ে প্রতিস্থাপন করুন:
echo 'Linux is the best operating system in the world' | tr -cs '[:alnum:]'
আউটপুট হল:
Linux is the best operating system in the world
অক্ষর প্রতিস্থাপন করুন
যদি আমরা স্ট্যান্ডার্ড ইনপুট ('কোডিং') থেকে অক্ষরগুলিকে দ্বিতীয় সেটের সংশ্লিষ্ট অক্ষরগুলি দিয়ে প্রতিস্থাপন করতে চাই৷
echo 'coding' | tr 'co' 'hi'
“c”-এর প্রতিটি ঘটনাকে “h” দিয়ে প্রতিস্থাপিত করা হয়েছে, এবং “o”-কে “i” দিয়ে ফলাফলের সাথে প্রতিস্থাপিত হয়েছে:
hiding
ক্যারেক্টার সেটগুলিও ক্যারেক্টার রেঞ্জ ব্যবহার করে সংজ্ঞায়িত করা যেতে পারে। উদাহরণস্বরূপ, লেখার পরিবর্তে:
echo 'coding' | tr 'abcd' 'wxyz'
আপনি ব্যবহার করতে পারেন:
echo 'coding' | tr 'a-d' 'w-z' yozing
যখন -c বিকল্প ব্যবহার করা হয়, tr সমস্ত অক্ষর প্রতিস্থাপন করে যা NOT SET1-এ .
নিম্নলিখিত উদাহরণে, “li ছাড়া সমস্ত অক্ষর ” দ্বিতীয় সেটের শেষ অক্ষর দিয়ে প্রতিস্থাপিত হবে:
$ echo 'coding' | tr -c 'cod' 'xy' liyyyiyyy
একটি নতুন লাইন ছাড়া একটি স্ট্রিং প্রতিধ্বনিত করতে, -n বিকল্পটি ব্যবহার করুন৷
৷-d SET1-এ উল্লিখিত অক্ষরগুলিকে মুছে ফেলার জন্য বিকল্পটি tr বলে . আপনি যখন চেপে না দিয়ে এটি করতে চান, তখন আপনাকে শুধুমাত্র একটি সেট নির্দিষ্ট করতে হবে।
নিচের কমান্ডটি l, I, এবং z মুছে ফেলবে অক্ষর:
echo 'Linuxize' | tr -d 'liz'