PowerShell에서 CSV 파일 결합

Migel Hewage Nimesha 2024년2월15일
  1. CSV 형식
  2. PowerShell에서 .csv 파일 필터링
  3. PowerShell에서 각 .csv 파일 개체 가져오기
  4. PowerShell에서 CSV 파일의 내용 병합
  5. PowerShell의 텍스트 파일에 병합된 콘텐츠 쓰기
PowerShell에서 CSV 파일 결합

여러 CSV 파일을 병합하고 PowerShell의 텍스트 파일에 데이터를 써야 하는 요구 사항이 있을 수 있습니다. Import-CsvExport-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 파일을 만들어 보겠습니다.

CSV 파일

username.csv 콘텐츠:

username CSV 파일

username2.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 파일 필터링

PowerShell에서 각 .csv 파일 개체 가져오기

전체 이름으로 각 파일 개체를 검색해 보겠습니다. Select-Object cmdlet을 사용하여 확장된 속성이 있는 각 개체를 검색할 수 있습니다.

Select-Object 명령에 이전 단계 출력을 파이핑하고 있습니다.

$csfFilesToImport = $csvFileList | Select-Object -ExpandProperty FullName

$csfFilesToImport 변수를 표시하면 CSV 파일 개체 모두 전체 이름으로 사용할 수 있음을 알 수 있습니다.

$csfFilesToImport

출력:

PowerShell에서 각 CSV 파일 개체 가져오기

PowerShell에서 CSV 파일의 내용 병합

모든 CSV 파일을 얻었으므로 각 파일의 내용을 가져오겠습니다. 이렇게 하면 콘텐츠를 공통 헤더 행과 쉽게 병합할 수 있습니다.

Import-CSV를 사용하여 파이프된 CSV 파일 내용에서 테이블과 같은 개체를 구성할 수 있습니다.

$importedCsvFiles = $csfFilesToImport | Import-Csv
$importedCsvFiles

출력:

PowerShell에서 CSV 파일의 내용 병합

제공된 두 개의 CSV 파일에서 정보가 병합되었습니다.

PowerShell의 텍스트 파일에 병합된 콘텐츠 쓰기

위의 개체를 CSV 문자열로 변환하고 텍스트 파일에 저장할 수 있습니다. Export-Csv cmdlet을 사용할 수 있습니다.

컨텐츠가 교체 및 추가되지 않도록 Append 매개변수를 사용해야 합니다.

$importedCsvFiles | Export-Csv D:\merged.txt -NoTypeInformation -Append

출력:

이렇게 하면 merged.txt라는 새 텍스트 파일이 생성됩니다. 해당 파일 내용은 위의 두 CSV 파일에서 병합됩니다.

PowerShell의 텍스트 파일에 병합된 콘텐츠 쓰기

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