Como Combinar Arquivos CSV no PowerShell
- 
          
            O formato CSV
- 
          
            Filtrar os arquivos .csvno PowerShell
- 
          
            Buscar Cada Objeto de Arquivo .csvno 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.
