Legyen függvény, de inkább C szűrő. Bár awk-ban is készítettem egy kisöccsét.
Ez a kifejezés +361\d{7} helyesen leírva... A továbbiakban nem írom a +36-ot, és a számokat tartalmazó mezőt"=T van a kezünkben. ...Így is meghatározható:
12000000 <= atoi(T) <= 19999999
A vizsgált körzetszámokra készíthető egy lista. (Alias adatbázis.)
No, ez már megfelel a Nemzeti Számozási Tervnek, de nem biztos, hogy érvényes a hívószám.
Ehhez a "kijelölt" állapotú számmezők listájáig kell finomítani az adatbázisunkat.
A teljesség kedvéért ehhez még hozzá kell tenni a hordozott számok listáját, és akkor kiderül minden megfelelő formátumú, egyúttal létező hívószám.
A fenti ábrázolás lényege az a felismerés, hogy 32 bites int-be belefér bármelyik telefonszám, ezért gazdaságosan tárolható. Az előforduló kb. 15M telefonszám mindössze 60MB-ba sűríthető.
Az előnye :), hogy ilyet nem lehet sql-ben tárolni, de pl. BerkelyDb vagy asszociatív tömb (awk) kiválóan megfelel.
Természetesen nem szükséges ilyen szószátyár módon diszket pazarolni! Elegendő a létező számmezőkre egy index (4 byte), amelyhez tartozik 1000x1 bit, azaz 129 byte/számmező. Ez a tárolási mód < 10MB adatmennyiséget jelent, így gyorsan lekérdezhető.