PowerShell에서 CSV 파일 결합하는 방법
-
CSV
형식 -
PowerShell에서
.csv
파일 필터링 -
PowerShell에서 각
.csv
파일 객체 가져오기 - PowerShell에서 CSV 파일 내용 병합
- PowerShell에서 병합된 내용을 텍스트 파일에 작성

여러 CSV 파일을 병합하고 데이터를 텍스트 파일로 작성해야 할 필요가 있을 수 있습니다. 이 작업을 수행하는 데 Import-Csv
및 Export-Csv
cmdlet을 사용할 수 있습니다.
CSV
형식
다양한 목적에 사용할 수 있는 여러 종류의 파일 형식이 있습니다. CSV
는 데이터를 저장하기 위해 간단한 구조를 사용합니다.
이 형식은 서로 다른 프로그램 간에 데이터를 교환하는 데 사용될 수 있습니다. 이름에서 알 수 있듯이 CSV
(Comma-Separated Values)는 데이터가 쉼표로 구분되어 있다는 의미입니다.
CSV
파일에 저장된 정보는 다음과 같습니다.
csvCopyUserName,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
파일 필터링
지정된 위치에서 모든 .csv
파일 유형을 가져오기 위해 Get-ChildItem
cmdlet을 사용하는 것이 좋습니다. .csv
확장자를 가진 파일을 필터링하기 위해 -Filter
매개변수를 전달할 수 있습니다.
.csv
파일의 폴더 경로는 귀하의 경우 다를 수 있습니다.
powershellCopy$csvFilePath = "D:\csvfiles"
$csvFileList = Get-ChildItem $csvFilePath -Filter *.csv
$csvFileList
에 있는 내용을 확인해 보겠습니다.
powershellCopy$csvFileList
출력:
PowerShell에서 각 .csv
파일 객체 가져오기
각 파일 객체의 전체 이름으로 검색해 보겠습니다. Select-Object
cmdlet을 사용하여 각 객체를 확장된 속성과 함께 검색할 수 있습니다.
이전 단계의 출력을 Select-Object
명령에 파이프합니다.
powershellCopy$csfFilesToImport = $csvFileList | Select-Object -ExpandProperty FullName
$csfFilesToImport
변수를 표시하면 두 개의 CSV
파일 객체가 전체 이름과 함께 표시되는 것을 볼 수 있습니다.
powershellCopy$csfFilesToImport
출력:
PowerShell에서 CSV 파일 내용 병합
모든 CSV
파일을 가져왔으므로 각 파일의 내용을 가져오겠습니다. 이는 공통 헤더 행으로 내용을 쉽게 병합할 수 있습니다.
파이프된 CSV
파일 내용에서 테이블과 유사한 객체를 구성하기 위해 Import-CSV
를 사용할 수 있습니다.
powershellCopy$importedCsvFiles = $csfFilesToImport | Import-Csv
$importedCsvFiles
출력:
제공된 두 개의 CSV
파일에서 정보가 병합되었습니다.
PowerShell에서 병합된 내용을 텍스트 파일에 작성
위의 객체를 CSV
문자열로 변환하고 이를 텍스트 파일로 저장할 수 있습니다. Export-Csv
cmdlet을 사용할 수 있습니다.
내용이 교체되지 않고 추가되도록 Append
매개변수를 사용해야 합니다.
powershellCopy$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.