이번 글을 다음과 같이 시리즈 형식으로 발행합니다.
Windows PowerShell 활용하기 (5) - 서비스
Windows PowerShell 활용하기 (6) - 패키지
PowerShell 에서 파이프라인에 명령을 결합하는 방법을 살펴봅니다. 다른 주제는 아래를 목록을 참고 하시면 됩니다.
파이프라인은 연산자 | 로 연결한 일련의 명령입니다. 각 파이프라인 연산자는 이전 명령의 결과를 다음 명령의 입력으로 보냅니다.
아래의 예시에서 첫번째 명령 Command-1 의 결과는 두번째 명령 Command-2 의 입력으로 전송합니다. 두번째 명령 Command-2 을 처리하고, 세번째 명령 Command-3 에 전송합니다. 더 이상 처리할 명령이 없으면 콘솔에 표시합니다.
Command-1 | Command-2 | Command-3
입력 개체에서 제공하는 멤버 정보를 출력합니다. 개체의 속성이나 메소드 등이 멤버가 될 수 있습니다.
이 예제는 디렉토리 개체의 멤버를 출력합니다.
> Get-Item . | Get-Member TypeName: System.IO.DirectoryInfo Name MemberType Definition ---- ---------- ---------- LinkType CodeProperty System.String LinkType{get=GetLinkType;} Mode CodeProperty System.String Mode{get=Mode;} ...
이 예제는 프로세스 개체의 멤버를 출력합니다.
> Get-Process | Get-Member TypeName: System.Diagnostics.Process Name MemberType Definition ---- ---------- ---------- Handles AliasProperty Handles = Handlecount Name AliasProperty Name = ProcessName NPM AliasProperty NPM = NonpagedSystemMemorySize64 ...
입력한 개체에서 특정 멤버를 선택합니다.
이 예제는 프로세스 개체에서 Name, CPU 멤버를 선택하여 출력합니다. 문자(,)를 구분자로 하여 여러개의 멤버를 선택할 수 있습니다.
> Get-Process | Select-Object Name,CPU Name CPU ---- --- Adguard 23.34375 Adguard.BrowserExtensionHost 3.703125 AdguardSvc AggregatorHost AppHelperCap AppleMobileDeviceProcess 0 ApplePhotoStreams 0.0625
First, Last 옵션을 사용하면, linxu 의 head, tail 과 같은 결과를 볼 수 있습니다.
PS C:\> Get-Process | Select-Object -First 2 NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------ ----- ----- ------ -- -- ----------- 51 191.45 20.45 56.03 14200 1 Adguard 34 70.26 76.38 2.47 16108 1 Adguard.BrowserExtensionHost
PS C:\> Get-Process | Select-Object -Last 2 NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------ ----- ----- ------ -- -- ----------- 8 1.47 6.29 0.03 5060 0 WUDFHost 15 2.47 10.24 0.16 11784 0 WUDFHost
입력한 개체를 정렬합니다. 오름차순(Ascending) 정렬을 기본으로 하며, 내림차순(Descending) 정렬을 위해서는 -Descending 옵션을 사용합니다.
이 예제는 프로세스 개체에서 CPU 사용량을 내림차순으로 정렬하고, Name, CPU 멤버를 선택하여 출력합니다.
> Get-Process | Sort-Object CPU -Descending | Select-Object Name,CPU Name CPU ---- --- emacs 248.828125 MiniBin 79 OmenCommandCenterBackground 74.25 Adguard 24.171875 Dropbox 21.703125
특정 개체를 선택하여 반환합니다.
> Get-Process | Where-Object {$_.Name -eq "msedge"} Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 436 28 504576 129156 6.11 5088 1 msedge 367 25 38472 10084 0.42 5320 1 msedge 286 22 26700 7184 0.05 11212 1 msedge 248 14 8216 23328 0.06 13280 1 msedge 367 25 56584 107036 1.28 17444 1 msedge
개체의 속성 값을 계산합니다. 글자수 -Character, 단어수 -Word, 라인수 -Line 등의 옵션을 사용할 수 있습니다.
> Get-Process | Measure-Object Count : 281 Average : Sum : Maximum : Minimum : Property :
갯수 계산의 경우 Count 멤버를 사용할 수 있습니다.
> $(Get-Process).Count 281
> Get-Content .\test.txt | Measure-Object -Character -Word -Line Lines Words Characters Property ----- ----- ---------- -------- 116 383 3820