Single Quote als Trenner für split(awk)

R

rgre

Grünschnabel
Hallo,

ich sitze an einem Problem und bekomm es einfach nicht hin.

Aufgabe:

In einer Datei im Format

1;600189;1;600181;'ab'sdfdsf';'aaaaaaaa';

soll im 5. Feld im Text, der durch ' ' eingeschlossen ist, das ' im Text verdoppelt werden.

Ansatz hierzu ist folgendes awk-Skript, aber es gelingt mir nicht den Trenner '
anzugeben

Code:
awk ' BEGIN {
               FS=";"
            }
      {

         if ( $5 ~ /^\047.*\047.*\047$/ )
         {
            print "Single Quote gefunden " $5
            res = split( $5, array, "\047" )
            print "Anzahl " res
            for ( ix in array )
               print "Array[" ix "] " array[ix]

         }
      }
    '  $1

Ausgabe:

Code:
Single Quote gefunden 'ab'sdfdsf'
Anzahl 1
Array[1] 'ab'sdfdsf'


Ich bekomme also den String nicht zerlegt, was mache ich falsch ?
Danke schon mal für jede Hilfe
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Es handelt sich hier um eine SUN/Solaris 10 Umgebung.
 
Zuletzt bearbeitet:
Hi,

probier das doch mal mit nawk statt awk ... Ich nehme an, bei dir ist auch /usr/bin/awk ein Link auf den alten oawk, korrekt?

Gruss,
A.
 
Hallo,

vielen Dank für den schnellen Tip, ja das ist so, zwar kein Link, aber das oawk-Binary

-r-xr-xr-x 2 root bin 89128 Jan 8 2007 oawk*
-r-xr-xr-x 1 root bin 126964 Jan 8 2007 nawk*
-r-xr-xr-x 2 root bin 89128 Jan 8 2007 awk*


Wenn ich /usr/bin/nawk verwende, sieht der Output schon viel besser aus:

Single Quote gefunden 'ab'sdfdsf'
Anzahl 4
Array[2] ab
Array[3] sdfdsf
Array[4]
Array[1]

Damit komme ich natürlich schon weiter, vielen Dank und ein schönes Wochenende.

Gruß Roland
 

Ähnliche Themen

awk - Variablen aus $ fix speichern?

sed in awk-Arrays

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Zurück
Oben