এই আর্টিকেলে ব্যাখ্যা করা হয়েছে লিনাক্সে uniq কমান্ড কিভাবে ব্যবহার করবেন ফাইলে রিপিটেড লাইন খুঁজে বের বা ফিল্টার করার জন্য এবং কিছু ইউজেজ উদাহরণ।
uniq কমান্ড একটি সিম্পল কমান্ড যা সাপ্লাইড ইনপুট বা ফাইলে রিপিটেড লাইন আউটপুট করে অথবা বাদ দেয়।
uniq কমান্ড সিনট্যাক্স
uniq কমান্ডের সিনট্যাক্স নিচের মতো:
uniq OPTIONS INPUT OUTPUT
নোট করুন:
- OPTIONS হলো নিচের টেবিল থেকে অপশন লিস্ট
- INPUT হওয়া উচিত ফাইলের পথ যা পড়া হবে
- *স্ট্যান্ডার্ড ইনপুট *ও ব্যবহার করা যায়
- OUTPUT হওয়া উচিত ফাইল যেখানে uniq কমান্ডের রেজাল্ট সেভ হবে
- যদি সাপ্লাই না করা থাকে, স্ট্যান্ডার্ড আউটপুট ব্যবহার হবে (ডিফল্টলি কনসোলে প্রিন্ট করে)
ইনপুট বা আউটপুট ফাইল ডিফাইন না করলে, STDIN এবং STDOUT ব্যবহার করে uniq কমান্ডের সাথে ইনপুট এবং আউটপুট রিডাইরেক্ট করা যায় - কিভাবে করবেন সেটার জন্য এই আর্টিকেল চেক করুন।
অপশন
ইউজার ম্যানুয়াল থেকে সাধারণ ব্যবহৃত অপশনগুলো নিচের টেবিলে:
| -c | লাইনগুলোর আগে অকরেন্স সংখ্যা প্রিফিক্স করুন |
| -d | শুধু ডুপ্লিকেট লাইন প্রিন্ট করুন, প্রতিটি গ্রুপের জন্য একটা |
| -D | সকল ডুপ্লিকেট লাইন প্রিন্ট করুন |
| -i | তুলনা করার সময় কেস ডিফারেন্স ইগনোর করুন |
| -s | প্রথম N ক্যারেক্টার তুলনা এড়িয়ে যান |
| -u | শুধু ইউনিক লাইন প্রিন্ট করুন |
uniq কমান্ডের ফুল ইউজার ম্যানুয়াল দেখতে চালান:
man uniq
uniq কমান্ড উদাহরণ
উদাহরণ ফাইল
নিচের উদাহরণগুলো নিচের উদাহরণ ফাইলকে ইনপুট হিসেবে ব্যবহার করবে:
movies.txt
Dirty Harry Dirty Harry Total Recall Bride of Frankenstein Total Recall Demolition Man
ডিফল্ট বিহেভিয়ার - রিপিটেড লাইন রিমুভ
ডিফল্টলি, uniq কমান্ড রিপিটেড লাইন রিমুভ করে।
uniq movies.txt
যে আউটপুট দেবে:
Dirty Harry Total Recall Bride of Frankenstein Total Recall Demolition Man
নোট করুন যে রিপিটেড লাইন রিমুভ হয়েছে। ডুপ্লিকেট নয়। শুধু অ্যাডজাসেন্ট, আইডেন্টিক্যাল লাইন রিমুভ হয়।
রিপিট সংখ্যা দেখানো
-c অপশন প্রতিটি লাইনের সাথে সেটা কতবার রিপিট হয়েছে সেটা প্রিফিক্স করবে:
uniq -c movies.txt
যে আউটপুট দেবে:
2 Dirty Harry 1 Total Recall 1 Bride of Frankenstein 1 Total Recall 1 Demolition Man
শুধু নন-রিপিটেড লাইন দেখানো
-u অপশন শুধু রিপিট না হওয়া লাইন দেখাবে:
uniq -u movies.txt
যে আউটপুট দেবে:
Total Recall Bride of Frankenstein Total Recall Demolition Man
শুধু রিপিটেড লাইন দেখানো
-d অপশন শুধু রিপিটেড লাইন দেখাবে:
uniq -d movies.txt
যে আউটপুট দেবে:
Dirty Harry
আবার নোট করুন - রিপিটেড লাইন ইনক্লুড বা এক্সক্লুড করা হয়। ডুপ্লিকেট লাইন নয়। শুধু অ্যাডজাসেন্ট, আইডেন্টিক্যাল লাইন uniq কমান্ড দ্বারা প্রসেস হয়!
রেজাল্ট সেভ করা
কমান্ডের চূড়ান্ত প্যারামিটার হিসেবে একটি ফাইলনেম পাস করুন রেজাল্ট সেভ করার জন্য:
uniq -d movies.txt duplicated.txt
স্ট্যান্ডার্ড রিডাইরেকশন ব্যবহার
উপরে বলা অনুযায়ী, uniq কমান্ডে ইনপুট এবং আউটপুট ফাইল সাপ্লাই করা বাধ্যতামূলক নয়।
স্ট্যান্ডার্ড রিডাইরেকশন অন্য কমান্ড এবং অ্যাপ্লিকেশনের আউটপুটকে uniq-এ ডাইরেক্ট করতে পারে, যা তারপর নিজের আউটপুট অন্য প্রোগ্রাম বা ফাইলে রিডাইরেক্ট করতে পারে।
cat movies.txt | uniq > output.txt
উপরের উদাহরণে, cat কমান্ড উদাহরণ ফাইল পড়ে - এবং সেই আউটপুট পাইপ করা হয়েছে unique কমান্ডে। uniq কমান্ড তারপর আউটপুট > অপারেটর ব্যবহার করে একটি ফাইলে রিডাইরেক্ট করে।
জाहির কর এই পদ্ধতিটি ইনপুট/আউটপুট ফাইল পাস করার চেয়ে এক্সট্রা ফাংশনালিটি দেয় না। তবে, কমান্ডের আউটপুট কীভাবে অন্য কমান্ডে পাইপ/রিডাইরেক্ট করা যায় সেটার একটি স্পষ্ট উদাহরণ।