leerzeichen druch tab ersetzten geht nicht

29/01/2009 - 13:56 von Gerhard Wolf | Report spam
Hallo,

folgende subst funktioniert:

s/(\d\d\d\d-\d\d-\d\d)\s+(\d\d:\d\d:\d\d)\.\d\d\d\d/$1x$2/;
aus 2009-01-07 16:59:35 51.599998
wird 2009-01-07x16:59:35 51.599998

aber bei dem wird ein Leerzeichen statt ein Tabulator eingesetzt:

s/(\d\d\d\d-\d\d-\d\d)\s+(\d\d:\d\d:\d\d)\.\d\d\d\d/$1\t$2/;
^^
2009-01-07 16:59:35 51.599998
bleibtd 2009-01-07 16:59:35 51.599998

WARUM?
wie wird ein TAB daraus?
 

Lesen sie die antworten

#1 Moritz Lenz
29/01/2009 - 14:11 | Warnen spam
Gerhard Wolf wrote:
Hallo,

folgende subst funktioniert:

s/(\d\d\d\d-\d\d-\d\d)\s+(\d\d:\d\d:\d\d)\.\d\d\d\d/$1x$2/;
aus 2009-01-07 16:59:35 51.599998
wird 2009-01-07x16:59:35 51.599998



Nö:

$ echo '2009-01-07 16:59:35 51.599998' | perl -ple
's/(\d\d\d\d-\d\d-\d\d)\s+(\d\d:\d\d:\d\d)\.\d\d\d\d/$1x$2/;'
2009-01-07 16:59:35 51.599998

Die Regex erwartet sofort nach der Urzeit einen Punkt, in dem String
kommt erst mal ein Leerzeichen.

Grüße,
Moritz

Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Ähnliche fragen