Van ilyen tool!
Úgy hívják awk és program, amit meg kell írni.
A problémád tipikus addattisztítási feladat:
- kell egy minta, amire illeszkednek az 1. típusú rekordok
- kell egy minta, amire illeszkednek az 2. típusú rekordok/a maradék
- kell egy minta, amire illeszkednek az 3. típusú rekordok/a maradék
- megnézzük mi maradt
- utána esetleg újabb minta, vagy
- javító algoritmus
- loop, amíg el nem fogynak a rekordok vagy a hiba mennysége kellő mértékben csökken
Egyes esetekben lehet javító szótárat építeni. Pl.:
"well-formed"=Budapest ->szótárba (persze ilyen már van)
A megtalált hibák alapján kialakulhat egy szótár sor: Budapest,budappest,BudiPest,budoPest
Itt az első trükk a nagybetűsítés!!
A szótár sorokból készül egy regexp szótár (tömb). Ha az Input nagybetűsített elem megegyezik a szótár bármely elemével, akkor találat. Ilyenkor az erdeti inputot cseréljük a szótár sor fő elemére. Ha változott, akkor hiba++.
A maradék nincs a szótárban - pl. Csepel. ;) Szemrevételezés után csaphatjuk a javító szótárhoz: BUDAPEST=Budapest,budappest,BudiPest,budoPest,Csepel
Aztán loop.
Az élet nem oneliner. ;)