Có một công cụ để so sánh các giá trị trong các tệp .ini không? [đóng cửa]


10

Tôi đang tìm kiếm một tiện ích so sánh tệp dành riêng cho các tệp .ini, thường được sử dụng làm tệp cài đặt.

Có rất nhiều công cụ so sánh tệp (WinDiff, Beyond So sánh, So sánh, WinMerge, ...), nhưng không có công cụ nào tôi đã thử có thể xử lý tốt các tệp .ini.

Một tệp .ini điển hình có thể trông như thế này:

[Settings]
Setting1=abc
Setting2=xyz

Công cụ phải khớp các dòng dựa trên chuỗi trước dấu bằng, sau đó hiển thị sự khác biệt trong mọi thứ khác sau dấu bằng. Thứ tự của các dòng trong một phần (các phần được biểu thị bằng dấu ngoặc vuông) không quan trọng và nên được bỏ qua.

Tôi không thể tìm thấy bất kỳ công cụ có thể xử lý này. Thông thường các công cụ hiện có sẽ hiển thị sự khác biệt ở đầu dòng trước dấu bằng (nếu hầu hết văn bản sau dấu bằng đều khớp), chúng sẽ đấu tranh với các dòng được sắp xếp lại (hiển thị tất cả dưới dạng thay đổi hoặc khớp với một số dòng và hiển thị phần còn lại như bị xóa ở một nơi và sau đó thêm vào một nơi khác). Tôi thậm chí đã tìm thấy một số công cụ trong đó văn bản phù hợp có thể bị hạn chế, ví dụ như sử dụng các biểu thức thông thường, nhưng chúng chỉ đơn giản bỏ qua phần còn lại của dòng và tôi không thể so khớp các dòng dựa trên một mẫu (tức là mọi thứ trước dấu bằng) và sau đó so sánh chúng dựa trên trên cái khác (mọi thứ sau dấu bằng).


Bây giờ tôi đã đọc câu hỏi của bạn, tôi thực sự không hiểu những gì bạn muốn ... có lẽ bạn có thể hiển thị những gì bạn MUỐN cũng như những gì bạn có. regexes và diff sẽ có thể xử lý những gì bạn muốn làm.
Joseph Kern

Bạn nên đổi tên bài đăng của mình .... Có công cụ nào để so sánh các giá trị trong tệp .ini không?
Joseph Kern

1
Dành cho HĐH / 2: os2world.com/goran/initools.htmlm ;-)
splattne

Cảm ơn Joseph, điểm tốt, tôi đã chỉnh sửa tiêu đề. splattne - initools nghe có vẻ hoàn hảo, thật xấu hổ khi tôi sử dụng Windows.
ssollinger

Câu trả lời:


6

Beyond So sánh có một quy tắc INI được sắp xếp mà bạn có thể tải xuống .


1
Tuyệt vời, đó chính xác là những gì tôi đang tìm kiếm. Tôi đã xem xét ngắn gọn về Beyond So sánh trước đây nhưng không nhận thấy quy tắc ini được sắp xếp. Trong trường hợp bất cứ ai quan tâm, liên kết trong câu trả lời của bạn là dành cho Beyond So sánh 2. "Quy tắc ini được sắp xếp" cho Beyond So sánh 3 có sẵn tại đây: scootersoftware.com/doad.php?zz=kb_moreformats
ssollinger

Liên kết từ nhận xét đầu tiên không hoạt động - 404. Chỉ có một trang khác từ BC4 - scootersoftware.com/doad.php?zz=kb_moreformatsv4
pl71


2

Tôi thường chỉ sắp xếp các tập tin trước khi so sánh. Sẽ không có ích gì nếu bạn có thứ gì đó như

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

nhưng giả sử rằng các khóa của bạn là duy nhất (và do đó có thể được khớp với một phần), nó thường hoạt động trong một nhúm.


Tuy nhiên, điều này đôi khi có ích khi bạn nói rằng nó không hoạt động nếu có một số phần, nó cũng thường bị lỗi nếu có một vài dòng bị thiếu trong một trong các tệp (hầu hết các công cụ sau đó bắt đầu thử khớp các dòng sai).
ssollinger

thật; Tôi không đề xuất nó như một lý tưởng, nhưng trong một tình huống khó khăn, nó thường có thể giúp đỡ
Mikeage

2

Hãy thử vimdiff. Đây là một ví dụ với các tập tin .ini.


ĐÔI MẮT CỦA TÔI! .Xác định! Thay đổi chúng!
Joseph Kern

1
Vâng, nó rất xấu, xin lỗi. Nhưng tôi không nghĩ nó không liên quan gì đến .Xdefaults vì đây là giao diện điều khiển. Tôi sẽ xem tài liệu vim để thay đổi những màu này :).
chmeee

1
trong trường hợp bất cứ ai khác quan tâm - vimdiff có sẵn thông qua vim.org. VimDiff vẫn ổn, nhưng nó thất bại khi các dòng được hoán đổi và sau đó giá trị là khớp gần hơn sau đó là chuỗi trước dấu bằng. Trong trường hợp này, VimDiff sẽ hiển thị sự khác biệt trong phần trước dấu bằng, đây không phải là điều tôi muốn.
ssollinger


0

Tôi luôn thích Winmerge, rất tùy biến.


WinMerge rất tuyệt nhưng không xử lý tốt các tệp cài đặt (tệp .ini). Tốt hơn là một số người khác (như WinDiff), nhưng câu hỏi của tôi là về một công cụ so sánh cụ thể các giá trị trong các tệp .ini. WinMerge không thể làm điều này.
ssollinger

1
Winmerge có một cài đặt để so sánh các khối văn bản đã di chuyển và tương tự nhau. Tôi sử dụng nó để so sánh các tệp web.config, nhưng tôi đoán chúng được tổ chức ít hơn so với các tệp ini.
Dave

Tôi sử dụng WinMerge và thực hiện thay thế regex trên mỗi tệp để xóa các số trước khi so sánh ( [0-9]+=với =). Nhưng tôi luôn phải loại bỏ các tập tin thay đổi. Tôi cũng đang tìm kiếm một giải pháp tốt hơn.
djeidot
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.