PowerShell에서 CSV로 데이터 내보내기

Migel Hewage Nimesha 2023년1월30일
  1. Export-CSV PowerShell Cmdlet을 사용하여 CSV로 데이터 내보내기
  2. ConvertTo-CSV PowerShell Cmdlet을 사용하여 데이터를 CSV로 내보내기
PowerShell에서 CSV로 데이터 내보내기

CSV 파일은 내용에 특정 형식이 적용된 구분된 텍스트 파일입니다. 형식은 다음 예와 같이 간단한 테이블 구조와 매우 유사합니다.

예를 들어,

Name, NIC, Phone

John, 394829G,  +671392392

Risabh, 32909340J, +12328833

CSVComma Separated Values의 약어입니다. 파일 형식(CSV)에서 알 수 있듯이 데이터 값을 쉼표로 구분합니다. 데이터가 포함된 CSV 파일을 생성하는 데 사용할 수 있는 다양한 도구가 있습니다.

이 기사에서는 PowerShell에서 데이터를 CSV 파일로 내보내는 방법에 대해 설명합니다.

Export-CSV PowerShell Cmdlet을 사용하여 CSV로 데이터 내보내기

Export-CSV는 데이터를 CSV 형식으로 내보내는 데 사용할 수 있는 PowerShell cmdlet 중 하나입니다. 이 cmdlet은 비교적 사용하기 쉽고 몇 가지 속성도 사용할 수 있습니다.

Export-CSV Cmdlet 구문

<data_objects/content> | Export-CSV -Path <path> 
  • <data_objects/content>: Export-CSV cmdlet에 공급되는 데이터 개체/콘텐츠입니다.
  • Export-CSV: CSV 형식으로 데이터 내보내기를 담당하는 cmdlet입니다.
  • -Path: csv 파일이 저장될 경로입니다.

실시예 01

Get-Process cmdlet을 사용하여 일부 데이터 개체를 반환하고 Export-CSV cmdlet에 제공하여 CSV 형식으로 내보낼 수 있습니다.

Get-Process

출력:

Handles	NPM(k)	PM(K)	WS(K)	CPU(s)	Id		SI 		ProcessName
313		14		3712	10756	7.69	39500	0		ApplicationFrameHost
507		30		22864	22836	2.11	18156	2		armsvc

여러 프로세스 개체가 반환될 수 있습니다. 파이프 (|) 연산자를 사용하여 반환된 개체를 Export-CSV cmdlet에 공급할 수 있습니다. 그런 다음 Get-Content cmdlet을 사용하여 내보낸 CSV 콘텐츠를 확인할 수 있습니다.

Get-Process | Export-CSV -Path .\ProcessObjects.csv
Get-Content -Path .\ProcessObjects.csv

출력:

"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...

Export-CSV cmdlet의 기본 동작을 변경하는 데 사용할 수 있는 유용한 속성은 거의 없습니다.

실시예 02

Get-Process | Export-CSV -Path .\ProcessObjects.csv -Delimiter ';'
Get-Content -Path .\ProcessObjects.csv

출력:

"ProcessName";"SI";"Handles";"VM";"WS";"PM";"NPM"; .....
"armsvc";"2";"511";"2203597099008";"35364864";"21979136";"30048"; ...

-Delimiter 옵션은 구분 기호를 기본값 ,에서 지정된 기호로 변경합니다.

ConvertTo-CSV PowerShell Cmdlet을 사용하여 데이터를 CSV로 내보내기

ConvertTo-CSV cmdlet은 위에서 설명한 Export-CSV cmdlet과 거의 유사합니다. 둘 사이의 유일한 차이점은 Export-csv cmdlet은 CSV 문자열을 파일에 저장하지만 ConvertTo-CSV의 경우는 그렇지 않습니다. 쉼표로 구분된 값 문자열만 반환합니다.

ConvertTo-CSV Cmdlet 구문

<data_objects/content> | ConvertTo-CSV 
  • <data_objects/content>: ConvertTo-CSV cmdlet에 공급되는 데이터 개체/콘텐츠입니다.
  • ConvertTo-CSV: CSV 문자열 반환을 담당하는 cmdlet입니다.

예시

Get-Process | ConvertTo-Csv

출력:

"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...p

따라서 Export-CSVConvertTo-CSV cmdlet은 PowerShell을 사용하여 CSV 형식 데이터를 생성하는 데 유용한 도구입니다.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

관련 문장 - PowerShell CSV