למידת PowerShell Sort-Object עם דוגמאות

מיון המידע לא צריך להיות משימה מעמיסה. אם אתה מחפש דרך יעילה למיין מידע, cmdlet ה-Sort-Object של PowerShell כאן כדי לעזור!

במדריך זה, תלמד איך להשתמש ב-cmdlet Sort-Object של PowerShell כדי למיין מידע, בין אם זה מספרים, מחרוזות או אובייקטים.

שלך את הבדיקה המתמידה של המידע שלך ומיינם בצורה יעילה ב-PowerShell!

תחילה

וודא שיש לך מכונה עם PowerShell 5.0 או גרסה מאוחרת מותקנת עבור מדריך זה כדי לעקוב אחרי הדגמאות הפעלה מעשית. מדריך זה משתמש ב-Windows 10 עם PowerShell 7 מותקן.

מיון מידע עם cmdlet ה-Sort-Object של PowerShell

בהתאם לדרישות שלך, תוכל למיין מידע בהתבסס על פרופרטים אחד או יותר בדרכים רבות. cmdlet ה-Sort-Object מאפשר לך למיין מידע, לדוג, בסדר עולה או יורד כדי להקל על ניתוח ועבודה עם מידע מובנה.

תחביר הבסיס של cmdlet ה-Sort-Object הוא כדלקמן, היכן:

  • <אובייקט-למיון> – מתייחס לאיסוף נתונים למיון, כמו מערך, רשימה או סוגי נתונים אחרים.
  • <-פרמטר> – פרמטר אופציונלי לציין את קריטריוני המיון שמאפשר לך להתאים אישית כיצד המיון מתבצע.
<Object-to-Sort>|Sort-Object <-Parameter>

כדי לראות איך ניתן למיין מידע בסדר עולה וירד:

1. פתח את PowerShell והרץ את הפקודה הבאה, שאינה מספקת פלט אלא מגדירה רשימת מספרים שלמים אקראיים במשתנה $numbers.

$numbers = 4, 2, 3, 1, 5

? שים לב שב-PowerShell, אתה לא פועל רק עם מספרים ומחרוזות אלא עם אובייקטים מאחר ו-PowerShell הוא שפת מונחים ומסד.

2. לאחר מכן, בצע את הפקודות הבאות כדי למיין (Sort-Objects) ולהציג (Write-Output) את המספרים שהוגדרו במשתנה $numbers.

$sortedNumbers = $numbers | Sort-Object
Write-Output $sortedNumbers

בלי להוסיף פרמטרים, הפלט מציג את המספרים בסדר עולה.

Sorting data in ascending order

3. כעת, הרץ את אותן פקודות, אך הפעם, הוסף את הפרמטר -Descending כדי למיין ולהציג את המספרים בסדר יורד.

$sortedNumbers = $numbers | Sort-Object -Descending
Write-Output $sortedNumbers

הפלט דומה לזה שמצוין למטה מציין כי המספרים ממוינים בסדר יורד.

Sorting numbers in descending order

מיון נתונים לפי ערכים ייחודיים

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

כדי למיין נתונים לפי ערכים ייחודיים:

הפעל את הפקודות הבאות כדי לבצע את הבא:

  • הגדר רשימת מספרים שלמים (עם כפילויות כלולות) במשתנה $numbers.
  • מיין את המספרים לפי ערכי -Unique בסדר -Descending ואחסן את התוצאה במשתנה $sortedNumbers.

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

פקודות אלו אינן מספקות פלט, אך תאמת את הנתונים שממוינים בשלב הבא.

$numbers = 4, 2, 3, 3, 1, 5, 2
$sortedNumbers = $numbers | Sort-Object -Unique -Descending

כעת, הרץ את הפקודה Write-Output למטה כדי להוציא את תוכן המשתנה $sortedNumbers ולוודא את התוצאה.

Write-Output $sortedNumbers

למטה, כל הערכים הייחודיים ממוינים בסדר יורד וערכים כפולים הוסרו.

כפי שניתן לראות, המיון לפי ערכים ייחודיים משפר את יעילות ניתוח הנתונים ומסיר מידע חוזר כאשר מתמודדים עם מערכות נתונים גדולות.

Sorting data by unique values

מיון נתונים לפי מחרוזות

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

בהקשר זה, מחרוזת מתייחסת לתו יחיד או לרצף של תווים, כמו מילים, ביטויים או מידע טקסטואלי אחר. ב-PowerShell, מחרוזות מיוצגות על ידי סגירת הטקסט בתוך גרשיים, הן יחידים (') הן כפולים (").

בכדי לבצע את הפקודות הבאות ולמיין מערך של מחרוזות בסדר עולה (אלפביתי) כבררת מחדל.

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

# הגדרת מערך של מחרוזות
$strings = "a", "b", "c" 
# מיון המחרוזות בסדר עולה כבררת מחדל (ללא פרמטרים)
$sortedStrings = $strings | Sort-Object
# הצגת המחרוזות הממוינות
Write-Output $sortedStrings
Sorting strings in alphabetical order

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

# הגדרת מערך של מחרוזות
$strings = "a", "b", "c" 
# מיון המחרוזות בסדר יורד
$sortedStrings = $strings | Sort-Object -Descending
# הצגת המחרוזות הממוינות
Write-Output $sortedStrings

הפעם תראה את הפלט בסדר ההפוך, כפי שמוצג למטה.

Sorting strings in the reverse order

מיון נתונים לפי תכונות

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

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

בצע את הפקודות הבאות כדי לקבל רשימה של כל התהליכים הרצים (Get-Process) במערכת שלך ולמיין אותם לפי שימוש במעבד (CPU). הפרמטר -Descending מציג את התוצאות עם התהליכים הכי רסורסיים בראש הרשימה.

# קבל אוסף של כל התהליכים הרצים
$processes = Get-Process

# מיין את התהליכים על פי שימוש ה-CPU בסדר יורד
$sortedProcesses = $processes | Sort-Object -Property CPU -Descending

# בחר והצג את השמות ואת התכונות של CPU של כל תהליך
$sortedProcesses | Select-Object Name, CPU
Sorting data by properties

מיון של טבלאות גיבוב

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

ה-cmdlet Sort-Object מאפשר לך למיין טבלאות גיבוב כדי לשפר את ההצגה של הנתונים ולפשט את אחזור המידע.

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

# יצירת טבלת גיבוב עם שלושה זוגות מפתח-ערך
$hashTable = @{
    "C" = "Charlie"
    "A" = "Alpha"
    "B" = "Bravo"
}

# מיון הטבלה לפי המפתחות ואחסון התוצאה הממוינת במשתנה $sortedHashTable
$sortedHashTable = $hashTable.GetEnumerator() | Sort-Object -Property Name

# לולאה דרך כל ערך בטבלה הממוינת
foreach ($entry in $sortedHashTable) {
    # הפלט של זוג מפתח-ערך
    Write-Output "$($entry.Name): $($entry.Value)"
}

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

שיטת המיון הזו מבטיחה מצג נתונים טוב יותר והפקת מידע מהטבלה המקובצת בצורה קלה יותר.

Sorting hash tables

סיכום

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

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

מיון הוא רק אחת מהיכולות היקרות של PowerShell וה-cmdlets שלו. למה לא להרחיב את הכישורים שלך וללמוד על cmdlets אחרים? אולי תיצור יומנים של התוכנית עם Tee-Object או למד אודות גדלי אובייקטים עם Measure-Object?

Source:
https://adamtheautomator.com/powershell-sort-object/