Synchronizace obsahu dvou souborů

- -

Synchronizace obsahu dvou souborů
« kdy: 26. 12. 2024, 08:49:04 »
Dobrý den, žádám o pomoc/příkaz/skript, který by zajistil následující:

Aktualizace českého souboru:
https://raw.githubusercontent.com/haveno-dex/haveno/refs/heads/master/core/src/main/resources/i18n/displayStrings_cs.properties

Na základě obsahu anglického souboru:
https://raw.githubusercontent.com/haveno-dex/haveno/refs/heads/master/core/src/main/resources/i18n/displayStrings.properties

V anglickém souboru jsou některé proměnné a jejich hodnoty a chybí v české souboru. V českém souboru jsou některé proměnné a hodnoty umístěné v jiném pořadí (na jiných linkách) než v anglickém. Je to mnoho linek a já jako laik nevím jak to co nejrychleji opravit.

Zkoušel jsem na Linuxu několik programů pro diff, ale hledání hodnot, přemisťování, kopírování je stále příliš časově náročné s ohledem na několik tisíc linek v souboru.

Nejblíže jsem se asi dostal s:
git diff -h
git diff -h --no-prefix --no-index cs.properties en.properties # založeno na https://stackoverflow.com/questions/9122948/run-git-merge-algorithm-on-two-individual-files
A pak s AI generovaným příkazem:
sed -e '/^-/d' -e's/^+//' -e's/^[[:space:]]*//; s/^[[:space:]]*//; s/[[:space:]]*=[[:space:]]*/=/g' cs.properties
ale tam to nahrazuje již přeložené linky anglickými nepřeloženými, takže to nemůžu použít. Neznám jinou verzi souboru, která by umožnila sloučení na základě 3 vstupních souborů, možná ale taková existuje, jen ji neumím najít a rozpoznat.

Díky předem, pokud tomuto budete věnovat nějakou tu minutu. Jde o překlady pro aplikaci pro decentralizovanou a soukromou směnu měn založenou na anonymní kryptoměně Monero:
https://haveno.exchange/ - testnet
https://retoswap.com/ - funkční mainnet
« Poslední změna: 26. 12. 2024, 08:52:40 od - - »


Re:Synchronizace obsahu dvou souborů
« Odpověď #1 kdy: 26. 12. 2024, 11:23:47 »
Když už jsou ty vánoce a člověk by měl dělat dobré skutky ...

Kód: [Vybrat]
egrep "$(cat displayStrings_cs.properties.txt displayStrings.properties.txt | grep = | cut -f1 -d= | sort | uniq -c | grep "^[ ]*1" | cut -f2 -d1 | tr -d " " | tr "\n" "|" | sed "s/|$//")" displayStrings.properties.txt


Není to optimální, nedejbože dokonalé (tak moc zase vánoce nežeru), ale nezabralo to moc času a tak nějak to funguje.