2010-12-27 6 views
0

Ich frage mich, gibt es irgendeine Implementierung von awk, die Referenz (wie in Perl) oder etwas Ähnliches zum Aufbau komplexer Datenstruktur hat? Das Hinzufügen einer solchen Funktion würde awk leistungsfähiger machen. Wird der POSIX-Standard eine solche Funktion in Zukunft hinzufügen?Warum nicht Referenz und multidimensionale Array zu awk Sprache hinzufügen

+0

Meine erste Reaktion ist "Warum stören? Verwenden Sie Perl". Sie könnten etwas finden unter http://awk.info/ –

Antwort

1

Multidimensional arrays are supported in gawk.

Aus dem Handbuch:

{ 
     if (max_nf < NF) 
      max_nf = NF 
     max_nr = NR 
     for (x = 1; x <= NF; x++) 
      vector[x, NR] = $x 
} 

Referenzen sind nicht, und ich denke, Referenzierung ist nicht "der awk Weg".

HTH!

+0

Sie sind eher wie pseudo-multidimensionale Arrays. Awk nimmt grundsätzlich den Komma-Operator und verkettet die beiden Array-Indicies mit dem ASCII-Dateitrennzeichen und behandelt dies dann als einen eindimensionalen Index. Um die beiden Indicies/Keys wieder zu trennen, müssen Sie eine 'split()' auf 'SUBSEP' – SiegeX

+0

@SiegeX Yep machen. So funktioniert es und ich denke, es ist eine ziemlich clevere Möglichkeit, das Feature hinzuzufügen. Auf der anderen Seite scheint es, dass es dem OP egal ist, wie er/sie nicht kommentiert oder gewählt hat ... –

+0

yep, dontcha hasse das. Hier ist +1 für Aufwand – SiegeX

Verwandte Themen