Skip to content

Instantly share code, notes, and snippets.

@alexishida
Created February 24, 2025 13:41
Show Gist options
  • Save alexishida/f6dcf9cdefeadc6e41cf4b0271c64f07 to your computer and use it in GitHub Desktop.
Save alexishida/f6dcf9cdefeadc6e41cf4b0271c64f07 to your computer and use it in GitHub Desktop.
Compare csv files in ruby
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