1)Для воспроизведения необходимо подготовить два файла: echo -e "[DEFAULT]\nServerAliveInterval=45\nCompression=yes\n[Database]\nhost=127.0.0.1\nport=3306" > simple1.ini echo -e ";Комментарий\n[Section1]\n#Ещё\nkey1=value1\nkey2=value with spaces\n" > complex1.ini echo -e "[Section2];секция с \n#exe=true\nkey3=value3\n[Database];перезапись\nhost=localhost\ntimeout=30" >> complex1.ini 2) после, произвести их слияние, и просмотреть результат qmeregeinifiles merged.ini simple1.ini complex1.ini cat merged.ini Фактический результат слияния: [Database] timeout=30 [Section1] #Ещё key2=value with spaces key1=value1 [Database] port=3306 [Section2] #exe=true key3=value3 [Database] host=localhost [DEFAULT] Compression=yes ServerAliveInterval=45 [General] ;Комментарий Ожидаемый результат: [DEFAULT] ServerAliveInterval=45 Compression=yes ;Комментарий [Section1] #Ещё key1=value1 key2=value with spaces [Section2];секция #exe=true key3=value3 [Database];перезапись host=localhost port=3306 timeout=30 Можно заметить несколько недочётов: 1) Секции дублируются ([Database] продублирована три раза). Большинство современных парсеров обработают это корректно, но не стоит перекладывать задачу на них(https://en.wikipedia.org/wiki/INI_file#Duplicate_names). Это также может вызывать недопонимание при дальнейшем ручном редактировании файлов. 2) Комментарий ";Комментарий" находился в файле complex1.ini перед секцией [Section1], а в выводе попал под секцию [General] 3) Комментарии, находящиеся на одной строке с заголовком секции теряются: [Database];перезапись -> [Database] [Section2];секция с -> [Section2] Воспроизводится на системах (обновлённых до Sisyphus): Alt Server 11.0 x86-64 Alt Education KDE 11.0 x86-64 Alt Education XFCE 11.0 x86-64 Alt Workstation 11.1 x86-64 Alt Workstation K 11.1 x86-64
Секции дублироваться не должны.
(Ответ для Божченко Павел Александрович на комментарий #0) > 3) Комментарии, находящиеся на одной строке с заголовком секции теряются: > [Database];перезапись -> [Database] > [Section2];секция с -> [Section2] Это хорошо, т.к. невалидные.
> > 3) Комментарии, находящиеся на одной строке с заголовком секции теряются: > > [Database];перезапись -> [Database] > > [Section2];секция с -> [Section2] > Это хорошо, т.к. невалидные. Хотя, по формату валидные, но пусть удаляются. Можно считать ожидаемым поведением.
qmergeinifiles-3.1.0-alt1 -> sisyphus: Thu Dec 11 2025 Oleg Solovyov <mcpain@altlinux> 3.1.0-alt1 - merge sections in .ini file (Closes: #57185) - fix usage (Closes: #57180)