Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Script  (gelezen 1551 keer)

Offline Riel

  • Lid
    • Rielity
Script
« Gepost op: 2009/05/14, 13:23:00 »
Hai!
In een probeersel om een eigen kentekenherkenner te maken ben ik al wat gevorderd. Ik krijg Clara OCR zo ver om ongescande kentekens via de commandline te laten herkennen. Deze dumpt een kenteken in een textbestand.

Echter, hier zitten nog wat lege regels en andere 'rommel' in. Ik wil graag het kenteken filteren door ALLE andere tekens dan A t/m Z, 0-9 en de '-' te verwijderen uit het tekstbestand.

Dit lijkt me wel goed mogelijk in een klein script? Maar scripting ... veel verder dan ls en cd kom ik niet :D


"you don't need to remember anything if you only tell the truth"

Offline xpired

  • Lid
Re: Script
« Reactie #1 Gepost op: 2009/05/14, 14:47:28 »
Dus al ik het goed begrijp wil je dat we hier een compleet script neer zetten voor je? ;) haha

Hoe zit de output er een beetje uit?

Kijk eens naar awk en sed... en natuurlijk bash :)
http://www.ibm.com/developerworks/linux/library/l-sed1.html
http://www.ibm.com/developerworks/library/l-awk1.html
http://www.ibm.com/developerworks/library/l-bash.html

Perl heeft ook erg krachtige dingen:
http://www.perlmonks.org/?node_id=430596

Kijk er eens even naar... zonder een echt voorbeel van de output is het denk ik moeilijk iets er over te zeggen.

Groet!

Offline track

  • Lid
Re: Script
« Reactie #2 Gepost op: 2009/05/15, 21:05:04 »
Hoi Riel,

volgens mij is het makkelijkste een awk-scriptje.
Daar kun je makkelijk de hele rotzooi filteren, per regel en per veld binnen een regel.

De handleiding achter de link van Sebastian is heel goed !  (dus ook mijn aanrader)

Vriendelijke groet,

track

Offline Riel

  • Lid
    • Rielity
Re: Script
« Reactie #3 Gepost op: 2009/05/16, 13:50:51 »
Ben de boel al druk aan het doorlezen, deze handleidingen heb ik niet kunnen vinden anders, thanx!
Alleen vind ik niets waar ik een .txt file letter voor letter kan doorlezen.

Misschien een richting: ik denk als ik op een of andere manier iets maak van

'for $ (letter) is its anders dan A-Z - 1-9'
doe niks
else
schrijf letter naar output.txt
next

maar hoe ik m een voor een de letters kan aanbieden? :D

« Laatst bewerkt op: 2009/05/16, 13:56:50 door Riel »
"you don't need to remember anything if you only tell the truth"

Re: Script
« Reactie #4 Gepost op: 2009/05/16, 14:04:11 »
Trouwens, een bestand met de extensie .txt is evengoed een tekstbestand als elk ander bestand. Onder Linux is een bestand niet afhankelijk van de extensie, maar van het MIME-type.

Offline track

  • Lid
Re: Script
« Reactie #5 Gepost op: 2009/05/17, 00:55:06 »
Het mooie bij awk is dat die een bestand zowel regel voor regel als ook verder woord voor woord "leest"
en kan bewerken.
De grondgedachte is dat telkens één regel gelezen wordt.
(dat is het principe, een bestand die niet uit regels bestaat komt dus niet in aanmerking)
Elke regel wordt automatisch opgesplitst in zijn woorden. ($1 bevat het eerste, $2 het twede enz.)
(mits dat niet zou passen kun je ook een ander teken dan de spatie als afscheidingsteken definiëren !)
En verder kun je van alles ermee doen, incusief andere programma's oproepen.

In jouw geval dus misschien:
1.) Pak alleen de regel waarin zinvolle letters zitten (de anderen sla over)
2.) Zoek precies dat "woord" dat qua vorm een kenteken kan zijn.
3.) Formatteer de boel netjes en print hem.
(op die manier kun je zo'n awk-script ook best in een pipeline inzetten !)

track

p.s.: om een voorbeeld te kunnen geven, kun je misschien het ruwe resultaat van jouw herkenner in de Extra opties..  Bijlage: zetten ?