
Ich verstehe nicht, wie ich die Mustererkennung mit sed anwende.
In einer großen Datei möchte ich das folgende Datumsformat von dd.mm.yyyy
in ersetzen dd/mm/yyyy
, also im Wesentlichen die Punkte durch Schrägstriche. Die Datei enthält mehrere Vorkommen von Datumsangaben im angegebenen Format, Punkte am Ende von Sätzen usw. dürfen jedoch nicht geändert werden.
sed 's/\./\//g' <file_name>
erledigt die Aufgabe, ändert sich aber jedes (.), daher brauche ich eine Möglichkeit, einen Mustervergleich durchzuführen.
Jede Hilfe wäre willkommen.
Danke
Antwort1
So funktioniert es:
sed 's/\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9]\{4\}\)/\1\/\2\/\3/g' file
Erläuterung:
s/ # substitute
\([0-9][0-9]\) # group 1, 2 digits
\. # a dot
\([0-9][0-9]\) # group 2, 2 digits
\. # a dot
\([0-9]\{4\}\) # group 3, 4 digits
/
\1 # content of group 1
\/ # a slash
\2 # content of group 2
\/ # a slash
\3 # content of group 3
/g # global flag