האם אתה מחפש דרך לארגן את הקבצים שלך ולבצע פעולות עליהם? ישנם מקרים רבים בתכנות בהם נדרש למיין נתונים מסוימים, כמו רשימת קבצים. למיון קבצים עם הפקודות Bash sort
ו- ls
יעזור לך לשמור על הארגון של הדברים.
במדריך זה, תלמד את היסודות של מיון קבצים ותוכן קבצים.
בואו נתחיל במיון!
דרישות מוקדמות
מדריך זה משתמש ב-Ubuntu 20.04, אך כל הפצת Linux תעבוד.
מיון קבצים ב-Bash בסדר אלפביתי
ישנם המון דרכים למיין קבצים ב-Linux, אך בואו נתעקש על הדרך הנפוצה ביותר, למיין קבצים בסדר אלפביתי.
הפעל את הטרמינל שלך והפעל את הפקודה ls -l
למטה כדי לקבל רשימת קבצים בתיקייה בסדר עולה. הדגל -l
מספר לפקודת ls
להדפיס את הפלט המוחזר בפורמט רשימה ארוכה.

כברירת מחדל, פקודת
ls
מצייגת קבצים בסדר עולה. כדי להפוך את סדר המיון, עבור את הדגל-r
לפקודתls -l
, כמו כן:ls -lr
. העברת הדגל-r
לפקודתls -l
מתייחסת לדוגמאות אחרות במדריך זה.
שימוש ב-Bash Sort כדי לסדר קבצים לפי גודלם
במקום למיין קבצים באופן אלפביתי, ייתכן שתרצה למיין קבצים לפי גודל הקובץ. מיון קבצים לפי גודל שימושי כאשר מעדיפים לראות את הקבצים הקטנים או הגדולים ביותר ברשימה.
למיין קבצים לפי גודל, העבר את הדגל -S
כדי להודיע לפקודת ls
למיין את רשימת הקבצים לפי גודל הקובץ.
הפעל את הפקודה למטה כדי לרשום קבצים (ls
) ממוינים לפי גודל הקובץ בפורמט רשימה ארוכה (-lS
).
למטה, תוכל לראות את הפקודה שמיינה את הקבצים לפי גודל בסדר יורד (הגדולים ביותר לקטנים ביותר לפי גודל).
להפוך את סדר המיון (מהקטן לגדול), הוסף את הדגל
-r
, כך:ls -lSr

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

מיון קבצים לפי סיומת הקובץ
כאשר אתה מחפש קובץ עם סוג קובץ מסוים, מיון קבצים לפי סיומת הקובץ הוא הפתרון האידיאלי.
בצע את הפקודה למטה כדי לרשום קבצים (ls
) בתיקיית העבודה ולמיין לפי סיומותיהם (-lx
).
שים לב למטה שהפקודה מיינה את הקבצים עם אותה סיומת בסדר עולה לפי שמותיהם.

מיון תוכן בקובץ טקסט
עד כה, למדת כמה שיטות שונות למיון קבצים בתיקייה. שנה את מיקודך מפקודת ls
, נסה להריץ את הפקודה sort
. הפקודה sort
ממיינת את תוכן הקובץ תלוי בדגל שתוסיף. אך תחילה, תצטרך קובץ עם תוכן שתרצה לשנות.
הרץ את הפקודה למטה כדי ליצור קובץ טקסט בשם ~/data/fruits.txt המכיל שמות של פירות. הדגל -e
מאפשר פרשנות של סימן נקודה חזרה כדי לכתוב כל מילה בשורה חדשה (\n
).
עכשיו הרץ את הפקודה למטה כדי למיין כל מילה בקובץ fruits.txt
.
למטה, תוכל לראות שתוכן הקובץ ממויין בסדר עולה.

ללא שום דגלים, פקודת
sort
ממיינת את תוכן הקובץ בסדר עולה כברירת מחדל. כדי להפוך את סדר המיון, הוסף את הדגל-r
לפקודת המיון, כמו כן:sort -r fruits.txt
. המיון בסדר הפוך על ידי הוספת הדגל-r
חל גם לדוגמאות אחרות במדריך זה.
מיון רשימת מספרים בקובץ טקסט
הפקודה למיון מספרים דומה למיון טקסטים בקובץ, אך תוסיף את הדגל -n
. בוא ניצור קובץ תחילה כדי להדגיש איך למיין באופן מספרי את תוכן הקובץ.
הרץ את הפקודה למטה כדי ליצור קובץ בשם ~/data/scores.txt המכיל מספרים אקראיים, כל אחד בשורה חדשה.
עכשיו הרץ את הפקודה למטה כדי למיין את המספרים (-n
) בקובץ ~/data/scores.txt.
תוכל לראות למטה, המספרים מופיעים ברשימה המתחילה במספר הקטן ביותר ומסתיימת במספר הגדול ביותר.

מיון רשימת מספרי גרסה בקובץ טקסט
אולי יש לך רשימת מספרי גרסה בקובץ טקסט שאתה רוצה למיין. אם כן, הוספת האפשרות --version-sort
תפתור את הבעיה.
כדי להדגים איך עובדת האפשרות --version-sort
, נצרף קובץ טקסט תחילה.
הרץ את הפקודה למטה כדי ליצור קובץ טקסט בשם ~/data/versions.txt עם מספרי גרסה אקראיים מופיעים, כל אחד בשורה חדשה (\n
).
עכשיו הרץ את הפקודה למטה כדי למיין את מספרי הגרסה (--version-sort
) בקובץ versions.txt. האפשרות --field-separator
מסבירה לפקודת sort
שהמספרים בכל גרסה מופרדים על ידי נקודה (.
). תוכל לשנות את מפריד השדות לכל תו שמפריד את המספרים בגרסאות המצויות בקובץ הטקסט שלך.

מיון Bash כדי למצוא ולמיין קבצים לפי סיומת קובץ
עד כה בדוגמאות הקודמות הרצת פקודות יחידות (או ls
או sort
). אך בתכנות, לעיתים תצטרך להשתמש בשתי או יותר פקודות ביחד. כיצד? על ידי צינור של פקודה אחת לאחרת.
הרץ את הפקודה הבאה כדי למצוא את כל קבצי המרקדאון (-iname "*.md"
) בתיקיית העבודה (.
), ולמיין אותם בסדר ירוד לפי האלפבית (sort -r
). תנסה למצוא ולמיין קבצים אחרים על ידי שינוי "*.md"
לסיומת קובץ אחרת.

אם אתה מעדיף לשמור את הפלט הממויין לקובץ טקסט במקום לפלט סטנדרטי בקונסול, הוסף את אפשרות
--output
, כמו כן:find . -iname "*.md" | sort -r --output=sorted.txt
. אפשרות--output
מספרת לפקודתsort
ליצור קובץ פלט עבור הרשימה הממויינת של הקבצים.
מסקנה
המטרה של מאמר זה הייתה ללמד אותך על דרכים שונות למיון באמצעות פקודות Bash במכונת לינוקס. עכשיו למדת למיין את רשימת הקבצים ולמיין את תוכן הקובץ. בנוסף, עליך גם לדעת כיצד להעביר צינורות של פקודות שונות למיון קבצים מורכב יותר.
עם הידע החדש שלך כאבן בניין, למה לא ליצור סקריפטים לאוטומציה של רשימות קבצים ומיון תוכן הקבצים?