Existe uma ferramenta para comparar valores em arquivos .ini? [fechadas]


10

Estou procurando um utilitário de comparação de arquivos especificamente para arquivos .ini, normalmente usado como arquivos de configurações.

Existem muitas ferramentas de comparação de arquivos (WinDiff, Beyond Compare, CompareIt, WinMerge, ...), mas nenhuma das ferramentas que tentei consegue lidar com arquivos .ini muito bem.

Um arquivo .ini típico pode ter esta aparência:

[Settings]
Setting1=abc
Setting2=xyz

A ferramenta deve corresponder às linhas baseadas na string antes do sinal de igual e, em seguida, mostrar diferenças em tudo o resto após o sinal de igual. A ordem das linhas dentro de uma seção (as seções são indicadas por colchetes) não importa e deve ser ignorada.

Não consigo encontrar nenhuma ferramenta que possa lidar com isso. Geralmente, as ferramentas existentes mostram diferenças no início da linha antes do sinal de igual (se a maioria do texto após o sinal de igual corresponder), elas terão dificuldades com as linhas reordenadas (mostrar tudo como alterado ou corresponder a algumas linhas e mostrar o restante é excluído em um local e adicionado em outro). Até encontrei algumas ferramentas em que o texto correspondente pode ser restrito, por exemplo, usando expressões regulares, mas elas simplesmente ignoram o restante da linha e não consigo combinar as linhas com base em um padrão (ou seja, tudo antes do sinal de igual) e depois compará-las com base em outro (tudo depois do sinal de igual).


Agora que li sua pergunta, realmente não entendo o que você quer ... talvez você possa mostrar o que você quer e o que você tem. regexes e diff devem poder lidar com o que você deseja fazer.
18119 Joseph Kern

Você deve renomear sua postagem .... Existe uma ferramenta para comparar valores em arquivos .ini?
18711 Joseph Kern


Obrigado Joseph, bom ponto, editei o título. splattne - initools parece perfeito, pena que estou usando o Windows.
ssollinger

Respostas:


6

O Beyond Compare possui uma regra INI classificada que você pode baixar .


1
Fantástico, era exatamente isso que eu estava procurando. Eu examinei brevemente o Beyond Compare antes, mas não percebi a regra ini classificada. No caso de alguém estiver interessado, o link na sua resposta é para Beyond Compare 2. O "classificadas regra ini" para Beyond Compare 3 está disponível aqui: scootersoftware.com/download.php?zz=kb_moreformats
ssollinger

Link do primeiro comentário não funciona - 404. Há uma outra página fr BC4 única - scootersoftware.com/download.php?zz=kb_moreformatsv4
pl71


2

Muitas vezes, acabei de classificar os arquivos antes de compará-los. Não vai ajudar se você tiver algo como

[foo]
bar1=xyz
bar2=abc
[foo2]
bar1=lky

mas, supondo que suas chaves sejam únicas (e, portanto, possam corresponder a uma seção), ela geralmente funciona muito bem.


Isso às vezes ajuda, no entanto, como você disse que não funciona se houver várias seções, também falha com freqüência se houver várias linhas ausentes em um dos arquivos (a maioria das ferramentas começa a tentar combinar as linhas incorretas).
ssollinger

verdadeiro; Não estou recomendando-o como um ideal, mas em um beliscão, que muitas vezes pode ajudar
Mikeage

2

Tente vimdiff. Aqui está um exemplo com arquivos .ini.


MEUS OLHOS! .Xdefaults! Mude-os!
18119 Joseph Kern

1
Sim, é muito feio, desculpe. Mas acho que não tem nada a ver com .Xdefaults, pois é um console. Vou procurar na documentação do vim para alterar essas cores :).
chmeee

1
caso alguém esteja interessado - o vimdiff está disponível no site vim.org. VimDiff está ok, mas falha quando as linhas são trocadas e, em seguida, o valor é uma correspondência mais próxima que a string antes do sinal de igual. Nesse caso, o VimDiff mostrará a diferença na parte antes do sinal de igual, que não é o que eu quero.
ssollinger


0

Eu sempre gostei do Winmerge, muito personalizável.


O WinMerge é ótimo, mas não lida muito bem com os arquivos de configurações (arquivos .ini). É melhor do que alguns outros (como o WinDiff), mas minha pergunta foi para uma ferramenta que compara especificamente os valores nos arquivos .ini. O WinMerge não pode fazer isso.
ssollinger

1
O Winmerge possui uma configuração para comparar blocos de texto que foram movidos e são semelhantes. Eu o uso para comparar arquivos web.config, mas acho que esses são um pouco mais organizados que os arquivos ini.
Dave

Eu uso o WinMerge e faço uma substituição de regex em cada arquivo para remover os números antes de comparar ( [0-9]+=para =). Mas eu sempre tenho que descartar os arquivos alterados. Também estou procurando uma solução melhor.
Djidot
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.