چگونه می توان با استفاده از uniq داده های تکراری را در یک فایل متنی Linux پیدا کرد


آیا تا به حال با پرونده های متنی با خط های تکراری و کلمات تکراری روبرو شده اید؟ شما می توانید به طور منظم با خروجی دستور کار کنید و می خواهید این رشته های مختلف را فیلتر کنید. در مورد پرونده های متنی و حذف داده های زائد در لینوکس ، uniq بهترین شرط شماست.

در این مقاله ، ما به طور کامل در مورد دستور uniq ، همراه با یک راهنمای دقیق در مورد نحوه استفاده از دستور برای حذف خطوط تکراری از یک فایل متنی ، بحث خواهیم کرد.

رهبری منحصر به فرد چیست؟

از دستور uniq در لینوکس برای نمایش خطوط یکسان در یک فایل متنی استفاده می شود. اگر می خواهید کلمات یا رشته های تکراری را از یک فایل متنی حذف کنید ، این دستور می تواند مفید باشد. از آنجا که دستور uniq برای یافتن نسخه های تکراری با خطوط مجاور مطابقت دارد ، فقط با فایل های متنی مرتب شده کار می کند.

خوشبختانه می توانید سفارش دهید پروجکشن از uniq برای سازماندهی پرونده متن به روشی سازگار با دستور استفاده کنید. علاوه بر نمایش خطوط تکراری ، دستور uniq همچنین می تواند وقوع خطوط تکراری را در یک فایل متنی محاسبه کند.

نحوه استفاده از uniq

گزینه ها و پرچم های زیادی وجود دارد که می توانید با uniq استفاده کنید. برخی از آنها اساسی هستند و عملیات ساده ای مانند چاپ خط های تکراری را انجام می دهند ، برخی دیگر برای کاربران پیشرفته ای که اغلب با فایل های متنی در Linux کار می کنند ، طراحی شده اند.

دستور زبان پایه

فرم اصلی برای uniq:

 uniq option input output

… هر جا گزینه این علمی است که برای فراخوانی روشهای خاصی از دستور استفاده می شود ، و ورودی آیا فایل متنی برای پردازش است ، و راهی برای برون رفت مسیر فایلی که خروجی را ذخیره می کند.

حد واسط خروج اختیاری است و می توان از آن چشم پوشی کرد. اگر کاربر پرونده ورودی را مشخص نکند ، uniq داده ها را از خروجی استاندارد به عنوان ورودی می گیرد. با این کار کاربر می تواند uniq را به سایر دستورات Linux هدایت کند.

نمونه فایل متنی

ما از فایل متنی استفاده خواهیم کرد Dupate.txt به عنوان یک ثبت سفارش.

 127.0.0.1 TCP
127.0.0.1 UDP
Do catch this
DO CATCH THIS
Don't match this
Don't catch this
This is a text file.
This is a text file.
THIS IS A TEXT FILE.
Unique lines are really rare.

توجه داشته باشید که ما قبلاً این فایل متنی را مرتب کرده ایم پروجکشن . اگر با پرونده های متنی دیگر کار می کنید ، می توانید آنها را با دستور زیر مرتب کنید:

 sort filename.txt > sorted.txt

قلم های تکراری را حذف کنید

ساده ترین راه استفاده از uniq حذف رشته های تکراری از ورودی و چاپ خروجی منحصر به فرد است.

 uniq duplicate.txt

محصولات:

توجه داشته باشید که سیستم تکرار دوم خط را نشان نمی دهد این یک فایل متنی است . علاوه بر این ، دستور بالا فقط خطوط منحصر به فرد را در پرونده چاپ می کند و بر محتوای فایل اصلی متن تأثیر نمی گذارد.

ردیف های تکراری را بشمارید

برای نمایش تعداد خطوط تکراری در یک فایل متنی ، از نشانگر استفاده کنید – درجه سانتیگراد با دستور پیش فرض

 uniq -c duplicate.txt

محصولات:

این سیستم تعداد هر سطر را در فایل متنی نمایش می دهد. شما می توانید این خط را ببینید این یک فایل متنی است این اتفاق دوبار در پرونده رخ می دهد. به طور پیش فرض ، دستور uniq به حروف کوچک و بزرگ حساس است.

برای چاپ فقط خطوط تکراری از یک فایل متنی ، از نشانگر استفاده کنید . – ه مخفف آن است تکرار .

 uniq -D duplicate.txt

سیستم خروجی را به صورت زیر نمایش می دهد.

 This is a text file.
This is a text file.

هنگام بررسی موارد تکراری ، از پرواز رد شوید

اگر می خواهید تعداد مشخصی از فیلدها را هنگام همسان سازی رشته ها رد کنید ، می توانید از نشانگر استفاده کنید -f با دستور -f مخفف آن است رشته .

در مورد آن فکر کنید زمینه های فایل متنی زیر

 192.168.0.1 TCP
127.0.0.1 TCP
354.231.1.1 TCP
Linux FS
Windows FS
macOS FS

برای رد کردن اولین فیلد:

 uniq -f 1 fields.txt

محصولات:

 192.168.0.1 TCP
Linux FS

دستور بالا قسمت اول (آدرس های IP و نام سیستم عامل) را رد کرده و با کلمه دوم (TCP و FS) مطابقت دارد. اولین تکرار هر مسابقه سپس به عنوان یک خروجی نمایش داده شد.

هنگام مقایسه نمادها را نادیده بگیرید

مانند پرش از زمینه ها ، می توانید نویسه ها را نادیده بگیرید. بگذارید علامت گذاری کنیم -s تعداد نویسه ها را برای جستجوی تنظیم می کند تا زمانی که با خطوط تکراری مطابقت داشته باشد. این ویژگی وقتی داده هایی که با آنها کار می کنید به صورت لیستی به شرح زیر است به شما کمک می کند:

 1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

دو حرف اول (لیست اعداد) را در یک پرونده نادیده بگیرید list.txt :

 uniq -s 2 list.txt

محصولات:

در خروجی بالا ، دو شخصیت اول نادیده گرفته می شوند ، و دیگران با خطوط منحصر به فرد ترکیب می شوند.

تعداد تکرار N حرف اول را تکرار کنید

به شما امکان می دهد برجسته کنید -w فقط تعداد مشخصی از کاراکترهای تکراری را بررسی می کند. مثلا:

 uniq -w 2 duplicate.txt

دستور بالا فقط با دو حرف اول مطابقت دارد و در صورت وجود خطوط منحصر به فردی را چاپ می کند.

محصولات:

حساسیت مورد را از بین ببرید

همانطور که قبلاً ذکر شد ، uniq تا زمانی که با خطوط موجود در پرونده مطابقت داشته باشد ، به حروف کوچک و بزرگ حساس است. برای نادیده گرفتن رجیستری ، از گزینه استفاده کنید -من با دستور

 uniq -i duplicate.txt

خروجی زیر را مشاهده خواهید کرد.

در خروجی فوق توجه کنید که uniq ردیف ها را نشان نمی دهد این کار را انجام دهید این یک فایل متنی است .

خروجی را به یک فایل ارسال کنید

برای ارسال خروجی دستور uniq به یک فایل می توانید از یک نامه استفاده کنید خروجی را مجدداً هدایت کنید ( > ) به شرح زیر است:

 uniq -i duplicate.txt > otherfile.txt

هنگام ارسال خروجی به یک فایل متنی ، سیستم خروجی فرمان را نمایش نمی دهد. می توانید محتویات فایل فرمان جدید را بررسی کنید گربه .

 cat otherfile.txt

همچنین می توانید از روش های دیگر برای ارسال خروجی خط فرمان به یک فایل Linux استفاده کنید.

تجزیه و تحلیل داده های تکراری با uniq

بیشتر اوقات ، هنگام اجرای سرورهای لینوکس ، یا روی ترمینال اجرا می شوید یا پرونده های متنی را ویرایش می کنید. بنابراین ، دانستن نحوه حذف نسخه های بعدی خطوط در یک فایل متنی می تواند منبع خوبی برای مجموعه مهارت های لینوکس شما باشد.

اگر نمی دانید چگونه متن را در یک فایل فیلتر و مرتب کنید ، کار با پرونده های متنی می تواند ناامید کننده باشد. برای سهولت کار شما ، Linux دارای بسیاری از دستورات ویرایش متن ، مانند و و awk به شما این امکان را می دهد که با پرونده های متنی به طور کارآمد کار کنید و از خط فرمان خارج شوید.



منبع

Author: terem

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *