[linux-l] [Lösung-II] awk

Peter Ross Peter.Ross at bogen.in-berlin.de
Do Aug 4 07:32:30 CEST 2011


Quoting "Olaf Radicke" <briefkasten at olaf-radicke.de>:

> Peter Ross <Peter.Ross at bogen.in-berlin.de> hat am 4. August 2011 um 03:01
> geschrieben:
>
>> Wenn ich das Projekt verstehe, koenntest Du jedes Binary reinhaengen 
>> (z.B. mit C++ erzeugt)?
>  
> Theoretisch und Praktisch schon. Nur sperrt sich der Hauptentwickler von
> Open-Sharedroot-initrd-ng dagegen, und der von Dracut - vermutlich - auch.

Was ist der Grund? Awk ist in C geschrieben, dash auch;-)

> Es gibt folgende Limmits in AWK-Funktionen:
> - Übergebene Variablen (Parameter) sind  lokal.
> - Funktionen können keine komplexen Datentypen wie Array zurückgeben.

Aber ein Array als Parameter kann veraendert werden, nach meiner  
Ubuntu-Manpage [gawk, nehme ich an):

        Functions are passed expressions by  value  and  arrays  by
        reference.  .. For example, csplit(s,A) puts each character of  s  into
        array A and returns the length of s.

             function csplit(s, A,    n, i)
             {
               n = length(s)
               for( i = 1 ; i <= n ; i++ ) A[i] = substr(s, i, 1)
               return n
             }

[Die FreeBSD-Manpage fuer nawk bejaht das auch: "Parameters  are   
passed  by  value  if scalar and by reference if array name"]

Gruss
Peter





Mehr Informationen über die Mailingliste linux-l