PowerShell에서 CSV 파일 결합
-
CSV
형식 -
PowerShell에서
.csv
파일 필터링 -
PowerShell에서 각
.csv
파일 개체 가져오기 - PowerShell에서 CSV 파일의 내용 병합
- PowerShell의 텍스트 파일에 병합된 콘텐츠 쓰기
여러 CSV 파일을 병합하고 PowerShell의 텍스트 파일에 데이터를 써야 하는 요구 사항이 있을 수 있습니다. Import-Csv
및 Export-Csv
cmdlet을 사용하여 이 작업을 수행할 수 있습니다.
CSV
형식
다양한 목적에 사용할 수 있는 다양한 유형의 파일 형식이 있습니다. CSV
는 단순한 구조를 사용하여 데이터를 저장합니다.
다른 프로그램 간에 데이터를 교환하는 데 사용할 수 있습니다. CSV
(쉼표로 구분된 값)라는 이름에서 알 수 있듯이 데이터는 쉼표로 구분됩니다.
CSV
파일에 저장된 정보는 다음과 같습니다.
UserName,Identifier,First Name,Last Name
jak12,1001,Harry,Smith
Rock90,1002,Jeremy,Hamilton
Rick23,1003,Rakesh,Donas
User01,1004,Lokie,Ferguson
구분 기호는 공백, 세미콜론 또는 기타 문자일 수 있습니다.
PowerShell을 사용하여 병합할 두 개의 csv
파일을 만들어 보겠습니다.
username.csv
콘텐츠:
username2.csv
콘텐츠:
PowerShell에서 .csv
파일 필터링
Get-ChildItem
cmdlet을 사용하여 지정된 위치의 모든 .csv
파일 형식을 가져오는 것이 좋습니다. -Filter
매개변수를 전달하여 .csv
확장자를 가진 파일을 필터링할 수 있습니다.
.csv
파일의 폴더 경로는 귀하의 경우에 다를 수 있습니다.
$csvFilePath = "D:\csvfiles"
$csvFileList = Get-ChildItem $csvFilePath -Filter *.csv
$csvFileList
에서 사용 가능한 내용을 확인합시다.
$csvFileList
출력:
PowerShell에서 각 .csv
파일 개체 가져오기
전체 이름으로 각 파일 개체를 검색해 보겠습니다. Select-Object
cmdlet을 사용하여 확장된 속성이 있는 각 개체를 검색할 수 있습니다.
Select-Object
명령에 이전 단계 출력을 파이핑하고 있습니다.
$csfFilesToImport = $csvFileList | Select-Object -ExpandProperty FullName
$csfFilesToImport
변수를 표시하면 CSV
파일 개체 모두 전체 이름으로 사용할 수 있음을 알 수 있습니다.
$csfFilesToImport
출력:
PowerShell에서 CSV 파일의 내용 병합
모든 CSV
파일을 얻었으므로 각 파일의 내용을 가져오겠습니다. 이렇게 하면 콘텐츠를 공통 헤더 행과 쉽게 병합할 수 있습니다.
Import-CSV
를 사용하여 파이프된 CSV
파일 내용에서 테이블과 같은 개체를 구성할 수 있습니다.
$importedCsvFiles = $csfFilesToImport | Import-Csv
$importedCsvFiles
출력:
제공된 두 개의 CSV
파일에서 정보가 병합되었습니다.
PowerShell의 텍스트 파일에 병합된 콘텐츠 쓰기
위의 개체를 CSV
문자열로 변환하고 텍스트 파일에 저장할 수 있습니다. Export-Csv
cmdlet을 사용할 수 있습니다.
컨텐츠가 교체 및 추가되지 않도록 Append
매개변수를 사용해야 합니다.
$importedCsvFiles | Export-Csv D:\merged.txt -NoTypeInformation -Append
출력:
이렇게 하면 merged.txt
라는 새 텍스트 파일이 생성됩니다. 해당 파일 내용은 위의 두 CSV
파일에서 병합됩니다.
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.