2012-03-26 15 views
6

Jak używać funkcji split do podziału przez "\."?Jak wywołać funkcję podziału w awk, aby podzielić ciąg na "."?

Na przykład, najpierw rozważyć dzielenie przez ::

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

która produkuje ten wyjściowe:

122603 

Ale jeśli ciąg przychodzące jest zamiast:

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

Z pożądanym wyjściem :

122603 

Czym powinien być ????

Odpowiedz

7

Musisz uciec oba znaki:

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

Wynik:

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

To daje taki sam efekt.