Created
February 24, 2025 13:41
-
-
Save alexishida/f6dcf9cdefeadc6e41cf4b0271c64f07 to your computer and use it in GitHub Desktop.
Compare csv files in ruby
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "csv" | |
# Caminhos dos arquivos CSV | |
arquivo1 = "cnpj_originais.csv" | |
arquivo2 = "cnpj_gerados.csv" | |
# Função para ler os dados de um arquivo CSV com uma coluna | |
def ler_dados(arquivo) | |
CSV.read(arquivo).flatten | |
end | |
# Lê os dados de ambos os arquivos | |
dados1 = ler_dados(arquivo1) | |
dados2 = ler_dados(arquivo2) | |
# Converte os arrays para conjuntos | |
set1 = Set.new(dados1) | |
set2 = Set.new(dados2) | |
# Encontra diferenças | |
diferencas_arquivo1 = set1 - set2 | |
diferencas_arquivo2 = set2 - set1 | |
# Exibe os resultados | |
if diferencas_arquivo1.empty? && diferencas_arquivo2.empty? | |
puts "Os arquivos contêm os mesmos dados (a ordem é ignorada)." | |
else | |
puts "Valores presentes apenas no arquivo 1: #{diferencas_arquivo1.to_a.join(", ")}" unless diferencas_arquivo1.empty? | |
puts "Valores presentes apenas no arquivo 2: #{diferencas_arquivo2.to_a.join(", ")}" unless diferencas_arquivo2.empty? | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment