Como Combinar Arquivos CSV no PowerShell
-
O formato
CSV
-
Filtrar os arquivos
.csv
no PowerShell -
Buscar Cada Objeto de Arquivo
.csv
no PowerShell - Mesclar o Conteúdo dos Arquivos CSV no PowerShell
- Escrever o Conteúdo Mesclado em um Arquivo de Texto 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.
Conteúdo de username.csv
:
Conteúdo de username2.csv
:
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:
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:
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:
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.
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.