파워셸을 사용하여 배열 값을 정렬하는 방법

  1. Sort-Object Cmdlet을 이용한 PowerShell에서 배열 값 정렬
  2. [Array]::Sort() 메서드를 이용한 PowerShell에서 배열 값 정렬
  3. 결론
파워셸을 사용하여 배열 값을 정렬하는 방법

배열 정렬은 PowerShell 스크립팅에서 일반적이고 필수적인 작업으로, 효율적인 데이터 조직 및 조작을 가능하게 합니다. 숫자, 문자열 또는 사용자 정의 객체 배열을 다루든 PowerShell은 정렬을 위한 다양한 도구를 제공합니다.

이 포괄적인 기사에서는 다양한 시나리오와 선호도에 맞추어 배열 값을 정렬하는 다양한 방법과 기법을 살펴보겠습니다.

Sort-Object Cmdlet을 이용한 PowerShell에서 배열 값 정렬

Sort-Object cmdlet은 다양한 기준에 따라 배열 값을 오름차순 또는 내림차순으로 편리하게 배열할 수 있는 방법을 제공합니다. 배열에 한정되지 않고 모든 객체 컬렉션과 함께 사용할 수 있습니다.

배열 정렬의 경우, 배열의 각 요소는 객체로 간주되며, 그에 따라 Sort-Object cmdlet이 적용됩니다.

Sort-Object cmdlet의 기본 구문은 다음과 같습니다:

<array> | Sort-Object [-Property <property>] [-Descending] [-Culture <culture>] [-Unique]

여기서:

  • <array>: 정렬하려는 배열을 나타냅니다.
  • -Property: 정렬을 수행할 기준 속성을 지정합니다. 제공되지 않은 경우, PowerShell은 첫 번째 입력 객체의 기본 정렬 속성을 사용합니다.
  • -Descending: 객체를 내림차순으로 정렬합니다. 이 매개변수를 사용하지 않으면 정렬은 오름차순으로 수행됩니다.
  • -Culture: 정렬에 사용할 문화를 지정합니다. 이는 선택 사항이며 기본값은 현재 문화입니다.
  • -Unique: 정렬된 목록에 고유한 항목이 포함되도록 합니다.

이제 Sort-Object cmdlet을 사용하여 배열 값을 정렬하는 방법을 이해하기 위해 실제 예제를 살펴보겠습니다.

예제 1: 오름차순 정렬

$numbers = 4, 2, 7, 1, 5
$sortedNumbers = $numbers | Sort-Object
$sortedNumbers

여기서는 $numbers 변수에 저장된 숫자 배열이 있습니다. 이 배열을 Sort-Object에 파이핑하여 숫자를 오름차순으로 정렬합니다.

정렬된 배열은 $sortedNumbers에 저장됩니다.

출력:

1
2
4
5
7

예제 2: 내림차순 정렬

$cities = "New York", "London", "Paris", "Tokyo", "Sydney"
$sortedCitiesDescending = $cities | Sort-Object -Descending
$sortedCitiesDescending

이 예제에서 배열 $cities는 도시 이름을 포함합니다. -Descending 매개변수를 사용하여 내림차순으로 정렬하며 그 결과는 $sortedCitiesDescending에 저장됩니다.

출력:

Tokyo
Sydney
Paris
New York
London

예제 3: 속성을 기준으로 객체 정렬

$people = @( [PSCustomObject]@{ Name = "Alice"; Age = 25 },
    [PSCustomObject]@{ Name = "Bob"; Age = 30 },
    [PSCustomObject]@{ Name = "Charlie"; Age = 22 } )
$sortedPeople = $people | Sort-Object Age
$sortedPeople

이 예제에서는 NameAge 속성을 가진 사람을 나타내는 사용자 정의 객체의 배열이 있습니다. -Property 매개변수를 사용하여 Age 속성을 기준으로 배열을 정렬합니다.

출력:

Name    Age
----    ---
Charlie  22
Alice    25
Bob      30

이 예제들은 PowerShell에서 배열 값을 정렬하는 Sort-Object cmdlet의 유연성과 강력함을 보여줍니다. 간단한 배열이든 복잡한 객체의 배열이든, Sort-Object는 직관적이고 효과적인 솔루션을 제공합니다.

[Array]::Sort() 메서드를 이용한 PowerShell에서 배열 값 정렬

Sort-Object cmdlet이 배열 정렬을 위한 강력한 도구인 반면, PowerShell은 [Array]::Sort() 메서드도 제공합니다. 이는 .NET[Array] 클래스의 멤버로, 배열 정렬을 위해 특별히 설계되었습니다. 이 메서드는 원래 배열의 요소 순서를 직접 수정하여 제자리 정렬 알고리즘입니다.

[Array]::Sort() 메서드를 사용하는 구문은 다음과 같습니다:

[Array]::Sort(<array>)
  • <array>: 정렬하려는 배열을 나타냅니다.

이제 배열 값을 정렬하기 위해 [Array]::Sort() 메서드를 활용하는 방법을 이해하기 위해 몇 가지 예를 살펴보겠습니다.

예제 1: 오름차순 정렬

[Array]::Sort() 메서드를 사용하여 배열을 오름차순으로 정렬하려면, 메서드를 호출하고 배열을 인수로 전달할 수 있습니다:

$numbers = 4, 2, 7, 1, 5
[Array]::Sort($numbers)
$numbers

이 예제에서는 배열 $numbers에 숫자 값이 포함되어 있습니다. 우리는 [Array]::Sort() 메서드를 사용하여 배열을 오름차순으로 직접 정렬합니다. 정렬은 제자리에서 수행되므로 원래 배열이 수정됩니다.

출력:

1
2
4
5
7

예제 2: 문자열 오름차순 정렬

$fruits = "Apple", "Orange", "Banana", "Grapes"
[Array]::Sort($fruits)
$fruits

여기서 배열 $fruits는 과일을 나타내는 문자열 값을 포함합니다. [Array]::Sort() 메서드를 적용하여 배열을 알파벳 순으로 오름차순 정렬합니다. 원래 배열은 제자리에서 수정됩니다.

출력:

Apple
Banana
Grapes
Orange

예제 3: 내림차순 정렬

$ages = 35, 22, 28, 40, 30
[Array]::Sort($ages)
$ages = $ages -join ", "
$ages

이 예제에서는 배열 $ages가 숫자 값으로 구성되어 있습니다. 우리는 [Array]::Sort()를 적용하여 배열을 오름차순으로 정렬한 후, -join을 사용하여 정렬된 값을 문자열로 연결하여 가독성을 높입니다.

출력:

22, 28, 30, 35, 40

[Array]::Sort() 메서드는 제자리에서 배열을 정렬하는 편리한 방법입니다. 원래 배열을 직접 수정하고자 할 때 특히 유용합니다.

하지만, 이 메서드는 복잡한 객체나 사용자 정의 유형의 배열을 정렬하는 데는 적합하지 않으며, 이럴 경우 Sort-Object가 더 적절한 선택이 될 것입니다.

결론

이 기사에서는 두 가지 기본 방법을 밝혀냈습니다: 다재다능한 Sort-Object cmdlet과 간단한 [Array]::Sort() 메서드. 각 방법은 PowerShell 스크립팅의 다양한 시나리오와 선호에 맞추어진 고유한 장점을 제공합니다.

Sort-Object cmdlet은 사용자 정의 객체 배열이나 다양한 데이터 유형을 처리할 때 그 유연한 구문과 속성을 기반으로 객체를 정렬하는 능력을 강조합니다. 파이프라인에 통합이 용이하여 배열 조작을 위한 강력한 도구이며, 오름차순 및 내림차순 정렬 기능을 제공합니다.

반면에 [Array]::Sort() 메서드는 간단함과 효율성에서 빛나며, 원래 배열을 제자리에서 직접 수정합니다. 기존 배열을 수정하고 추가 변수를 만들지 않는 것을 우선시하는 시나리오에 이상적입니다.

하지만, 이 방법이 기본 데이터 유형의 단순 배열 정렬에 주로 적합하다는 점을 인식하는 것이 중요합니다.

궁극적으로, Sort-Object cmdlet을 선택하든 [Array]::Sort() 메서드를 선택하든, 이는 PowerShell 스크립트의 특정 요구 사항에 따라 달라집니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - PowerShell Array