כיצד למצוא נתונים כפולים בקובץ טקסט של Linux עם uniq

כיצד למצוא נתונים כפולים בקובץ טקסט של Linux עם uniq

האם אי פעם נתקלת בקבצי טקסט עם שורות חוזרות ונשנות ומילים כפולות? אולי אתה עובד באופן קבוע עם פלט פקודה ורוצה לסנן את אלה עבור מחרוזות מובחנות. כשמדובר בקבצי טקסט והסרת נתונים מיותרים בלינוקס, הפקודה uniq היא ההימור הטוב ביותר שלך.





במאמר זה נדון לעומק בפקודת uniq, יחד עם מדריך מפורט כיצד להשתמש בפקודה להסרת שורות כפולות מקובץ טקסט.





מהו הפקודה uniq?

הפקודה uniq בלינוקס משמשת להצגת שורות זהות בקובץ טקסט. פקודה זו יכולה להיות שימושית אם ברצונך להסיר מילים או מחרוזות כפולות מקובץ טקסט. מכיוון שהפקודה uniq תואמת לשורות סמוכות למציאת עותקים מיותרים, היא פועלת רק עם קבצי טקסט ממוינים.





למרבה המזל, אתה יכול צינור סוג פקודה עם uniq לארגן את קובץ הטקסט באופן התואם את הפקודה. מלבד הצגת שורות שחוזרות על עצמן, הפקודה uniq יכולה לספור גם את המופע של שורות כפולות בקובץ טקסט.

כיצד להשתמש בפקודה uniq

ישנן אפשרויות ודגלים שונים שניתן להשתמש בהם עם uniq. חלקם בסיסיים ומבצעים פעולות פשוטות כגון הדפסת שורות שחוזרות על עצמן, ואילו אחרות מיועדות למשתמשים מתקדמים שעובדים לעתים קרובות עם קבצי טקסט ב- Linux.



תחביר בסיסי

התחביר הבסיסי של הפקודה uniq הוא:

uniq option input output

...איפה אוֹפְּצִיָה הוא הדגל המשמש להפעלת שיטות ספציפיות של הפקודה, קֶלֶט הוא קובץ הטקסט לעיבוד, ו- תְפוּקָה הוא הנתיב של הקובץ שיאחסן את הפלט.





ה תְפוּקָה הטיעון הוא אופציונלי וניתן לדלג עליו. אם משתמש אינו מציין את קובץ הקלט, uniq לוקח נתונים מהפלט הסטנדרטי כקלט. זה מאפשר למשתמש לבצע צינור uniq עם פקודות לינוקס אחרות .

קובץ טקסט לדוגמה

נשתמש בקובץ הטקסט כפול.טקסט כקלט לפקודה.





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 תלויה באותיות רישיות.

כדי להדפיס שורות כפולות בלבד מקובץ הטקסט, השתמש ב -D דֶגֶל. ה -D מייצג לְשַׁכְפֵּל .

uniq -D duplicate.txt

המערכת תציג פלט כדלקמן.

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

דלג על שדות בעת בדיקת כפילויות

אם ברצונך לדלג על מספר שדות מסוים תוך התאמת המחרוזות, תוכל להשתמש ב -f דגל עם הפקודה. ה -f מייצג שדה .

שקול את קובץ הטקסט הבא fields.txt .

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). לאחר מכן, הוא הציג את ההופעה הראשונה של כל התאמה כתפוקה.

התעלם מתווים בעת השוואה

כמו דילוג על שדות, גם אתה יכול לדלג על תווים. ה הדגל מאפשר לך לציין את מספר התווים שיש לדלג עליהם תוך התאמת שורות כפולות. תכונה זו מסייעת כאשר הנתונים שאיתם אתה עובד הם בצורת רשימה כדלקמן:

כיצד להריץ אבחון מערכת
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

להתעלם משתי התווים הראשונים (מספרי הרשימה) בקובץ list.txt :

uniq -s 2 list.txt

תְפוּקָה:

בפלט שלמעלה, התעלמו משתי הדמויות הראשונות ושאר הותאמו לשורות ייחודיות.

בדוק את מספר ה- N הראשון של התווים עבור כפילויות

ה flag מאפשר לך לבדוק מספר כפול של תווים בלבד. לדוגמה:

uniq -w 2 duplicate.txt

הפקודה האמורה תתאים רק לשתי התווים הראשונים ותדפיס שורות ייחודיות אם ישנן כאלה.

תְפוּקָה:

הסר את רגישות האותיות

כפי שצוין לעיל, uniq הוא תלוי רישיות תוך התאמת שורות בקובץ. כדי להתעלם מהרישיות, השתמש ב -אני אפשרות עם הפקודה.

uniq -i duplicate.txt

תראה את הפלט הבא.

שים לב בפלט למעלה, uniq לא הציג את השורות עשה זאת ו זהו קובץ טקסט .

שלח פלט לקובץ

כדי לשלוח את הפלט של הפקודה uniq לקובץ, אתה יכול להשתמש ב ניתוב פלט ( > ) אופי כדלקמן:

uniq -i duplicate.txt > otherfile.txt

בזמן שליחת פלט לקובץ טקסט, המערכת לא מציגה את הפלט של הפקודה. אתה יכול לבדוק את תוכן הקובץ החדש באמצעות חתול פקודה.

cat otherfile.txt

אתה יכול גם להשתמש בדרכים אחרות שלח פלט שורת פקודה לקובץ ב- Linux .

ניתוח נתונים כפולים עם uniq

לרוב בעת ניהול שרתי לינוקס, תעבוד על הטרמינל או תערוך קבצי טקסט. לכן ידיעה כיצד להסיר עותקים מיותרים של שורות בקובץ טקסט יכולה להיות נכס גדול למערך המיומנויות שלך ב- Linux.

עבודה עם קבצי טקסט יכולה להיות מתסכלת אם אינך יודע כיצד לסנן ולמיין טקסט בקובץ. כדי להקל על העבודה שלך, ל- Linux יש מספר פקודות לעריכת טקסט כגון sed ו awk המאפשרים לך לעבוד ביעילות עם קבצי טקסט ופלט שורת פקודה.

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל 10 דוגמאות אלה יהפכו אותך למשתמש בספק לינוקס

רוצה להיות משתמש כוח לינוקס? ההתמודדות עם sed תעזור. למד מ -10 הדוגמאות האלה.

קרא הבא
נושאים קשורים
  • לינוקס
  • לינוקס
על הסופר דיפש שארמה(79 מאמרים פורסמו)

Deepesh הוא העורך הצעיר של Linux ב- MUO. הוא כותב מדריכי מידע על לינוקס, במטרה לספק חוויה מאושרת לכל החדשים. לא בטוח לגבי סרטים, אבל אם אתה רוצה לדבר על טכנולוגיה, הוא הבחור שלך. בזמנו הפנוי אתה יכול למצוא אותו קורא ספרים, מאזין לז'אנרים מוסיקליים שונים או מנגן בגיטרה שלו.

עוד מאת דיפש שארמה

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה