Toon posts:

string too long (nawk)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dag mensen,

Ik heb in het verlede hier al iets over gevraagd maar ben er eigenlijk niet mee verder gegaan. Ik zit nu al enkele uren te stoeien met een nawk scriptje dat maar niet wil werken.

De bedoeling is dat er een NORTEL api gedraaid wordt in een netwerk waar de alarmen uitvloeien. Dit werkt allemaal erg goed. Deze regels hebben allemaal een bepaald format en wanneer er een bepaald alarm komt moet er een xmsg komen om te waarschuwen.

Nu doe ik dit met een regel als:

exec /opt/blablabla/gmdrapi -f /home/blaat/alarmfilter -d \
| /bin/nawk \
' BEGIN
blablabla

' &

Hierbij is gmdrapi het programma dat een bepaalde filter verwacht die staat in alarmfilter de -d optie wil zeggen dat deze als deamon uitgevoerd moet worden.
Nu probeer ik met de pipe een nawk scriptje uit te voeren wat prachtig mooi werkt als ik de variablen klein houd. er is echter 1 variablen die zo'n 10.000 characters bevat en deze pikt hij niet.

Zoals ik nawk ken zijn er geen bepaalde variablen te declareren maar je maakt ze gewoon door bijvoorbeeld te zeggen

Componentfilter = "string die heel erg lang is en gescheiden wordt door een komma"

Deze geef ik later weer een split om zo met loopjes te kunnen werken.

Dit wordt dus de hele tijd op de achtergrond gestart.

Nu vraag ik mij af of er iets te doen is aan het probleem van string too long? ligt dit aan nawk? of aan de SUN? (OS 9) of aan iets anders?

ik heb geen installatie rechten op de SUN dus daarmee kom ik niet verder.

  • Broer
  • Registratie: Januari 2002
  • Laatst online: 19-12-2025
Ik heb geen toegang tot SUNOS, maar wel awk.

Maak eens een file aan van meer dan 10.000 characters, en gooi die door nawk, dan kun je zien of het door nawk komt of niet.

Bij mij kan awk zonder foutmelding meer dan 75.000 characters aan, echter FieldSeparator werkt niet meer, een spatie werkt, maar FS=":" heeft geen nut, hij blijft alles als een string zien. Pas bij een spatie onderscheidt awk meerdere strings. Da's dus weer een heel ander probleem ;)

De boodschap is dus: localiseer het probleem wat meer, zodat duidelijker is/wordt wat er mis gaat.