یونیک
در مقایسه با نوعاز یونیک برنامه سبک وزن است یونیک یک کار به ظاهر پیش پا افتاده را انجام می دهد. هنگامی که یک فایل مرتب شده (یا ورودی استاندارد) داده می شود، هر خط تکراری را حذف می کند و نتایج را به خروجی استاندارد می فرستد. اغلب همراه با استفاده می شود نوع برای پاک کردن خروجی های تکراری
نکته: در حالی که یونیک یک ابزار سنتی یونیکس است که اغلب با آن استفاده می شود نوع، نسخه گنو از نوع پشتیبانی می کند -u گزینه ای که موارد تکراری را از خروجی مرتب شده حذف می کند.
بیایید یک فایل متنی بسازیم تا این را امتحان کنیم:
[me@linuxbox ~]$ cat > foo.txt a
bcabc
[me@linuxbox ~]$ cat > foo.txt a
bcabc
یادت باشه تایپ کنی Ctrl-d برای پایان دادن به ورودی استاندارد حالا اگر اجرا کنیم یونیک در فایل متنی ما:
[me@linuxbox ~]$ uniq foo.txt
abcabc
[me@linuxbox ~]$ uniq foo.txt
abcabc
نتایج هیچ تفاوتی با فایل اصلی ما ندارد. موارد تکراری حذف نشدند برای
uniq برای انجام کار خود، ابتدا باید ورودی مرتب شود:
[me@linuxbox ~]$ مرتب سازی foo.txt | یونیک
abc
[me@linuxbox ~]$ مرتب سازی foo.txt | یونیک
abc
این بخاطر این است که یونیک فقط خطوط تکراری را که مجاور یکدیگر هستند حذف می کند.
uniq چندین گزینه دارد. در اینجا موارد رایج وجود دارد:
جدول 20-2: گزینه های رایج uniq
توضیحات گزینه
توضیحات گزینه
-c خروجی لیستی از خطوط تکراری با تعداد دفعاتی که خط رخ می دهد.
-d فقط خطوط تکراری را به جای خطوط منحصر به فرد خروجی می دهد.
-f n نادیده گرفتن n زمینه های پیشرو در هر خط. فیلدها با فضای خالی از هم جدا می شوند نوع; با این حال، بر خلاف نوع, یونیک هیچ گزینه ای برای تنظیم جداکننده میدان جایگزین ندارد.
-i در طول مقایسه خط نادیده گرفته می شود.
-s n رد شدن (نادیده گرفتن) پیشرو n کاراکترهای هر خط
-u فقط خطوط منحصر به فرد را خروجی می دهد. خطوط دارای تکرار نادیده گرفته می شوند.
در اینجا ما می بینیم یونیک برای گزارش تعداد موارد تکراری یافت شده در فایل متنی با استفاده از -c گزینه:
[me@linuxbox ~]$ مرتب سازی foo.txt | uniq -c
2
2 ب
2 ج
[me@linuxbox ~]$ مرتب سازی foo.txt | uniq -c
2
2 ب
2 ج