Como Combinar Arquivos CSV no PowerShell

  1. O formato CSV
  2. Filtrar os arquivos .csv no PowerShell
  3. Buscar Cada Objeto de Arquivo .csv no PowerShell
  4. Mesclar o Conteúdo dos Arquivos CSV no PowerShell
  5. Escrever o Conteúdo Mesclado em um Arquivo de Texto no PowerShell
Como Combinar Arquivos CSV no PowerShell

Pode haver a necessidade de mesclar vários arquivos CSV e escrever os dados em um arquivo de texto no PowerShell. Os cmdlets Import-Csv e Export-Csv podem ser usados para realizar essa operação.

O formato CSV

Existem vários tipos de formatos de arquivo disponíveis para diferentes propósitos. O CSV usa uma estrutura simples para armazenar dados.

Pode ser usado para trocar dados entre diferentes programas. Como seu nome CSV (valores separados por vírgula) implica, os dados são separados por vírgulas.

As informações armazenadas em um arquivo CSV se parecem com o seguinte.

UserName,Identifier,First Name,Last Name
jak12,1001,Harry,Smith
Rock90,1002,Jeremy,Hamilton
Rick23,1003,Rakesh,Donas
User01,1004,Lokie,Ferguson

O delimitador pode ser um espaço, ponto e vírgula ou qualquer outro caractere.

Vamos criar dois arquivos csv que iremos mesclar usando o PowerShell.

Arquivos CSV

Conteúdo de username.csv:

arquivo CSV de nome de usuário

Conteúdo de username2.csv:

arquivo CSV username2

Filtrar os arquivos .csv no PowerShell

É recomendável usar o cmdlet Get-ChildItem para buscar todos os tipos de arquivos .csv na localização especificada. O parâmetro -Filter pode ser passado para filtrar os arquivos com a extensão .csv.

O caminho da pasta para os arquivos .csv pode ser diferente no seu caso.

$csvFilePath = "D:\csvfiles"
$csvFileList = Get-ChildItem $csvFilePath -Filter *.csv

Vamos verificar o conteúdo disponível na lista $csvFileList.

$csvFileList

Saída:

Filtrar os arquivos CSV no PowerShell

Buscar Cada Objeto de Arquivo .csv no PowerShell

Vamos recuperar cada objeto de arquivo com seu nome completo. O cmdlet Select-Object pode ser usado para recuperar cada objeto com suas propriedades expandidas.

Estamos passando a saída do passo anterior para o comando Select-Object.

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

Quando você exibe a variável $csfFilesToImport, pode-se ver que ambos os objetos de arquivo CSV estão disponíveis com o nome completo.

$csfFilesToImport

Saída:

Buscar cada objeto de arquivo CSV no PowerShell

Mesclar o Conteúdo dos Arquivos CSV no PowerShell

Uma vez que temos todos os arquivos CSV, vamos importar o conteúdo de cada arquivo. Isso facilmente mesclaria o conteúdo com uma linha de cabeçalho comum.

Podemos usar o Import-CSV para construir objetos semelhantes a tabelas a partir dos conteúdos dos arquivos CSV passados.

$importedCsvFiles = $csfFilesToImport | Import-Csv
$importedCsvFiles

Saída:

Mescle o Conteúdo de Arquivos CSV no PowerShell

As informações foram mescladas dos dois arquivos CSV fornecidos.

Escrever o Conteúdo Mesclado em um Arquivo de Texto no PowerShell

Podemos transformar os objetos acima em strings CSV e salvá-los em um arquivo de texto. O cmdlet Export-Csv está disponível para uso.

Devemos usar o parâmetro Append para garantir que o conteúdo não seja substituído e anexado.

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

Saída:

Isso deve criar um novo arquivo de texto chamado merged.txt. O conteúdo desse arquivo seria mesclado a partir dos dois arquivos CSV acima.

Escreva o Conteúdo Mesclado em um Arquivo de Texto no PowerShell

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
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.

Artigo relacionado - PowerShell CSV