הפקודה 'sort' היא תוכנית לינוקס המשמשת להדפסת שורות של קבצי טקסט קלט ואיחוי של כל הקבצים בסדר מיון. פקודת מיון מפרשת רווח ריק כמפריד שדות ואת כל קובץ הקלט כמפתח המיון. חשוב לשים לב שפקודת המיון לא ממיינת בפועל את הקבצים אלא רק מדפיסה את פלט המיון עד שתבצע הפניית פלט
. מאמר זה נועד לספק תובנה מעמיקה לגבי פקודת ה-'sort‘ של לינוקס עם 14 דוגמאות שימושיות הממחישות כיצד להשתמש בפקודת המיון בלינוקס.
1. יצירת קובץ טקסט עם תוכן מוגדר
ראשית, נצור קובץ טקסט בשם 'tecmint.txt‘, שישמש לביצוע דוגמאות פקודת 'sort‘. עבור משימה זו, ספריית העבודה שלנו היא '/home/$USER/Desktop/tecmint‘.
האפשרות '-e
‘ בפקודה הבאה מאפשרת פרשנות של סולמית ושל /n
אומר לפקודה echo לכתוב כל מחרוזת לשורה חדשה.
echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt
2. הצגת תוכן הקובץ
לפני שנתחיל עם פקודת 'sort‘, בואו נעיף מבט על תוכן הקובץ ועל האופן שבו הוא מופיע באמצעות פקודת ה- cat הבאה.
cat tecmint.txt
3. מיון תוכן קובץ
הפקודה "sort tecmint.txt" משמשת לסדר את השורות בקובץ בסדר אלפביתי עולה, אם יש שורות כפולות, היא תשמור על עותק אחד של כל שורה ייחודית.
sort tecmint.txt
4. הפניה ממוינת לקובץ חדש
הפקודה הבאה משמשת למיון השורות של הקובץ הטקסטי "tecmint.txt" בסדר אלפביתי ולאחר מכן מפנה את הפלט הממוין לקובץ חדש בשם "sorted.txt", כלומר הקובץ המקורי נשאר ללא שינויים, והתוכן הממוין מאוחסן בקובץ נפרד.
כדי לאמת את התוכן, השתמש בפקודת cat.
sort tecmint.txt > sorted.txt cat sorted.txt
5. מיון תוכן קובץ בסדר הפוך
הפקודה הבאה משמשת למיון השורות של הקובץ הטקסטי "tecmint.txt" בסדר הפוך, כלומר זה יסדר את השורות בסדר אלפביתי יורד והפלט הממוין מופנה לקובץ חדש בשם "reversesorted.txt"
sort -r tecmint.txt > reversesorted.txt cat reversesorted.txt
6. שמירת רשימת קבצים וספריות
בפקודה הבאה משתמשים כדי לרשום את התוכן של הדירקטוריום הביתי של המשתמש ("/home/$USER") בתצוגה מפורטת, בפורמט ארוך באמצעות הls command ואז זה מפנה את רשימת המדריך הזו לקובץ טקסט הנקרא "lsl.txt" הממוקם על שולחן העבודה של המשתמש, במיוחד במדריך "tecmint".
ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt cat lsl.txt
עכשיו, נחקור דוגמאות לסידור התוכן בהתבסס על שדות אחרים מאשר התווים הראשונים הברירתיים.
7. סידור 'תוכן הקבצים על פי השדה השני
בפקודה הבאה משתמשים כדי לסדר את התוכן של הקובץ "lsl.txt" על פי הערכים בשדה השני של כל שורה. האופציה '-n'
מציינת סידור מספרי, מתייחסת לשדה השני כמספרים ולא כטקסט.
האופציה '-k2'
מציינת שאנו רוצים לסדר על פי השדה השני. על ידי ביצוע פקודה זו, תקבל רשימה מסודרת של השורות ב" lsl.txt ", כאשר הקריטריון לסידור הוא הערכים המספריים בשדה השני של כל שורה.
sort -nk2 lsl.txt
8. סידור תוכן הקובץ על פי השדה התשיעי
בפקודה הבאה משתמשים כדי לסדר את השורות בקובץ " lsl.txt " על פי הערכים בשדה התשיעי של כל שורה בסדר עולה. האופציה '-k9'
מציינת שהסידור צריך להתבצע על פי השדה התשיעי.
sort -k9 lsl.txt
9. סדר קבצים לפי גודל הקובץ
הפקודה הבאה משלבת את הפקודות 'ls' ו- 'sort' כדי לרשום את התוכן של ספריית הבית של המשתמש בפורמט רשימה ארוכה ואז היא מעבירה את רשימת הספריות ל- 'sort -nk5'
, שממיין את הרשימה על פי הערכים בעמודה החמישית, שמייצגת את גודל הקבצים.
ls -l /home/$USER | sort -nk5
10. הסרת שורות חוזרות בקובץ
הפקודה הבאה ממיינת את השורות בקובץ " tecmint.txt" בסדר אלפביתי עולה ומסירה כל שורה חוזרת באמצעות האופציה '-u'
, שמייצגת " ייחודי", והיא מבטיחה ששורות ייחודיות נשארות בתוצאה הממוינת.
$ cat tecmint.txt $ sort -u tecmint.txt
כללים עד כה (מה שצפינו):
- שורות המתחילות במספרים מועדפות ברשימה ונמצאות בראשית עד שמצוין אחרת (
-r
). - שורות המתחילות באותיות קטנות מועדפות ברשימה ונמצאות בראשית עד שמצוין אחרת (
-r
). - התוכן מוצג על פי התרומה של אותיות במילון עד שמצוין אחרת (
-r
). - הפקודת המיון מטפלת בכל שורה כמו מחרוזת ואז ממיינת אותה תלויים בהתרומה של אותיות במילון (מועדף מספרי; ראה כלל – 1) עד שמצוין אחרת.
11. הכוונת הרשימת הספריות לקובץ
הפקודה הבאה מפרטת את התוכן של ספריית הבית של המשתמש בפורמט ארוך, כולל קבצים וספריות מחוברים, ואז היא מכווצת את רשימת הספריות לקובץ טקסט הנקרא "lsla.txt" הממוקם על שולחן העבודה של המשתמש בתוך המדריך "tecmint".
ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt cat lsla.txt
אלו שמכירים את פקודת ls מבינים ש- 'ls -lA'
שקול ל- 'ls -l'
בתוספת קבצים מחוברים. כתוצאה מכך, רוב התוכן בשתי הפקודות הללו יהיה זהה.
12. מיון תוכן של קבצים
הפקודה הבאה ממיינת את התוכן של שני קבצי טקסט, 'lsl.txt' ו- 'lsla.txt', בסדר אלפביתי עולה ואז משלבת ומציגה את התוכן הממויין במסך המסמכים.
$ sort lsl.txt lsla.txt
שימו לב לחזרות של קבצים ותיקיות.
13. הסרת שורות חוזרות בקובץ
הפקודה הבאה משלבת וממיינת את התוכן של שני קבצי טקסט, 'lsl.txt' ו- 'lsla.txt', בסדר אלפביתי עולה תוך כדי הסרת כל שורות חוזרות באמצעות האפשרות '-u'
, מה שמבטיח ששורות ייחודיות ישמרו בתוצאה הממויינת.
$ sort -u lsl.txt lsla.txt
שימו לב שחזרות נמחקו מהפלט. בנוסף, אפשר לשמור את הפלט בקובץ חדש על ידי הפניה אליו.
14. מיון פלט לפי שדות מרובים באמצעות פיצול מUSTOM
הפקודה הבאה משלבת את הפקודות 'ls' ו- 'sort' כדי לרשום את תוכן ספריית הבית של המשתמש בפורמט ארוך ולאחר מכן משרתת את רשימת הספריות לפקודה 'sort', שממיינת את הפלט על פי עמודות ספציפיות ושדות.
ls -l /home/$USER | sort -t "," -nk2,5 -k9
הנה פירוט של הפקודה:
- <קוד>-t "," – מציין שהפיצול של השדה מבוצע על ידי פסיק <קוד>(",").
- <קוד>-nk2,5 – מציין מיון לפי ערך מספרי בעמודות 2 עד 5, שבדרך כלל מייצגים פרטים על הרשאות ובעלות.
- <קוד>-k9 – ממשיך למיין את התוצאות על פי העמודה התשיעית, שמייצגת את גודל הקבצים.
זה הכול לעכשיו. במאמר הבא, נצמצם לדוגמאות מפורטות יותר של הפקודה מיון עבורך.דוגמאות מפורטות יותר של הפקודה מיון עבורך.
אנא המשך לשתף, להגיב, לחבב ולעזור לנו להגיע לקהל רחב יותר.