tr (translate) কমান্ডটি লিনাক্সে স্ট্যান্ডার্ড ইনপুট থেকে টেক্সট পড়ে, টেক্সটে কিছু মডিফিকেশন করে, এবং তারপর স্ট্যান্ডার্ড আউটপুট-এ পাঠায়। এই আর্টিকেলে ব্যাখ্যা করা হয়েছে কেন এবং কীভাবে আপনি এটি ব্যবহার করতে পারেন।
tr কমান্ড সিনট্যাক্স
কমান্ডটি ব্যবহারের জন্য আপনার দরকারি সিনট্যাক্স নিচে:
tr OPTIONS SET1 [SET2]
মনে রাখবেন:
- OPTIONS নিচের টেবিল থেকে অপশন들의 একটি তালিকা হওয়া উচিত
- SET1-এ থাকা ক্যারেক্টারগুলো SET2-এ একই পজিশনে থাকা ক্যারেক্টার দিয়ে রিপ্লেস হবে
- এগুলো অপশনাল – কিছু OPTIONS ট্রান্সলেশন করার ক্ষমতা রাখে, তাই দুটো SET নাও প্রয়োজন নাও হতে পারে।
- আপনি টেক্সট প্রসেস করা অনুপস্থিত দেখছেন – এটি স্ট্যান্ডার্ড রিডাইরেকশন ব্যবহার করে সরবরাহ করা হয় – উদাহরণগুলোতে আরও নিচে।
উপলব্ধ OPTIONS গুলো নিচে – ইউজার ম্যানুয়াল থেকে সরাসরি:
| OPTIONS | বর্ণনা |
|---|---|
| -c | SET1-এর কমপ্লিমেন্ট ব্যবহার করুন |
| -d | SET1-এ থাকা ক্যারেক্টার ডিলিট করুন, ট্রান্সলেট করবেন না |
| -s | শেষ নির্দিষ্ট SET-এ লিস্ট করা একটি রিপিটেড ক্যারেক্টারের প্রতিটি সিকোয়েন্সকে সেই ক্যারেক্টারের একটি একক উদ্ভব দিয়ে রিপ্লেস করুন |
| -t | প্রথমে SET1 কে SET2-এর দৈর্ঘ্যে কেটে দিন |
আপনি যদি স্পেশাল ক্যারেক্টার রিপ্লেস বা ডিলিট করতে চান, যেমন SET-এ নিউলাইন এবং ট্যাব, তবে নিচের সিকোয়েন্সগুলো ব্যবহার করতে পারেন:
| ইন্টারপ্রেটেড সিকোয়েন্স | স্পেশাল ক্যারেক্টার |
|---|---|
| \NNN | অক্টাল ভ্যালু NNN বিশিষ্ট ক্যারেক্টার (১ থেকে ৩ অক্টাল ডিজিট) |
| \\ | ব্যাকস্ল্যাশ |
| \b | ব্যাকস্পেস |
| \n | নিউ লাইন |
| \r | রিটার্ন |
| \t | হরিজন্টাল ট্যাব |
| [:alnum:] | সকল লেটার এবং ডিজিট |
| [:alpha:] | সকল লেটার |
| [:blank:] | সকল হরিজন্টাল হোয়াইটস্পেস |
| [:digit:] | সকল ডিজিট |
| [:lower:] | সকল लोয়ার কেস লেটার |
| [:space:] | সকল হরিজন্টাল বা ভার্টিক্যাল হোয়াইটস্পেস |
| [:upper:] | সকল আপার কেস লেটার |
আমি শুধু কিছু সাধারণ অপশন/সিকোয়েন্স উপরে অন্তর্ভুক্ত করেছি (কারণ এগুলো বেশ বেশি)। কমান্ড অপশন들의 পূর্ণ তালিকা ইউজার ম্যানুয়ালে পাওয়া যাবে, যা রান করে পাওয়া যাবে:
man tr
tr কমান্ড উদাহরণ
নিচে tr কমান্ড ব্যবহারের কিছু উদাহরণ দেওয়া হলো।
এই শুধু উদাহরণ; আপনি অপশন এবং সিকোয়েন্স মিক্স-অ্যান্ড-ম্যাচ করে আপনার প্রয়োজনীয় ফলাফল পেতে পারেন।
ক্যারেক্টার রিমুভ করা
নিচের উদাহরণটি একটি স্ট্রিং থেকে নির্দিষ্ট ক্যারেক্টার রিমুভ করে। echo কমান্ডের আউটপুট পাইপ করা হয়েছে tr কমান্ডে।
tr কমান্ড যেভাবে আপনার অনুবাদ করতে চাওয়া টেক্সট পায় – এটিকে অবশ্যই পাইপিং বা রিডাইরেকশন ভায়া স্ট্যান্ডার্ড ইনপুট হিসেবে সরবরাহ করতে হবে।
echo "axbxcxdx" | tr -d 'x'
উপরে, -d অপশন tr-কে নির্দেশ দিচ্ছে echo কমান্ডের আউটপুট থেকে ক্যারেক্টার x ডিলিট করতে।
এটি রিটার্ন করবে:
abcd
lowercase থেকে UPPERCASE
নিচের উদাহরণটি আপার/লোয়ার ইন্টারপ্রেটেড সিকোয়েন্স ব্যবহার করে সকল লোয়ারকেস ক্যারেক্টার আপারকেসে রিপ্লেস করে:
echo "aBcDeFg" | tr '[:lower:]' '[:upper:]'
এটি আউটপুট করবে:
ABCDEFG
ক্যারেক্টার রিপ্লেস করা
tr সম্ভবত সবচেয়ে বেশি ব্যবহার হয় স্ট্রিং-এ ক্যারেক্টার রিপ্লেস করতে – উদাহরণস্বরূপ, হোয়াইটস্পেস ড্যাশ দিয়ে রিপ্লেস করা:
echo "frogs and fish" | tr '[:blank:]' '-'
যেটি আউটপুট করবে:
frogs-and-fish
এই উদাহরণ দুটি SET ব্যবহার করে – প্রথম সেটে হোয়াইট/ব্ল্যাঙ্ক স্পেসের আইডেন্টিফায়ার (অর্থাৎ স্পেস ট্যাব), দ্বিতীয় সেটে একটি ড্যাশ – তাই হোয়াইটস্পেস ড্যাশ দিয়ে রিপ্লেস হয়েছে (SET2, SET1 রিপ্লেস করছে)।
এটি ওয়েবসাইটে আপলোডের জন্য ফাইলনেম জেনারেট করার সময় উপযোগী হতে পারে যাতে সেই ফাইলনেমগুলোর কোনো স্পেস নাই।
একাধিক ক্যারেক্টার রিপ্লেস করা
গত উদাহরণে, প্রতিটি সেটে শুধু একক ক্যারেক্টার ছিল। একাধিক ক্যারেক্টার সরবরাহ করে একবারে একাধিক রিপ্লেসমেন্ট করা যায়:
echo "frogs and fish" | tr 'sf' 'SF'
যেটি আউটপুট করবে:
FrogS and FiSh
যেমন দেখছেন, প্রথম সেটের সংশ্লিষ্ট লেটারগুলো দ্বিতীয় সেটের লেটার দিয়ে সাবস্টিটিউট হয়েছে।
রিপিটেড ক্যারেক্টার রিমুভ করা
নিচে, টেক্সট থেকে অপ্রয়োজনীয় রিপিটেড হোয়াইটস্পেস রিমুভ করা হয়েছে:
echo 'Absolutely spaced out' | tr -s '[:space:]'
যেটি আউটপুট করবে:
Absolutely spaced out
[:blank:] আইডেন্টিফায়ারটি -s অপশনের সাথে ব্যবহার করা হয়েছে রিপিটেড হোয়াইটস্পেস চিহ্নিত ও রিমুভ করার জন্য।