2012-03-26 2 views
6

Wie verwende ich die split Funktion, um durch "\." Zu teilen?Wie rufe ich die Split-Funktion in awk auf, um eine Zeichenfolge auf "." Aufzuteilen?

Betrachten wir zum Beispiel erste Spaltung von ::

echo "03:26:12" | awk '{split($0,a,":"); print a[3] a[2] a[1]}' 

Welche erzeugt diese Ausgabe:

122603 

Aber wenn die ankommende Zeichenfolge statt:

echo "03\.26\.12" | awk '{split($0,a,???); print a[3] a[2] a[1]}' 

Mit gewünschten Ausgangs :

122603 

Was sollte die ??? sein?

Antwort

7

Sie müssen beide Escape-Zeichen:

echo "03\.26\.12" | awk '{split($0,a,/\\\./); print a[3] a[2] a[1]}' 

Ergebnis:

122603 
3
echo "03\.26\.12" | awk '{split($0,a,"\\\."); print a[3] a[2] a[1]}' 

Dies ergibt die gleiche Leistung.