Hallo Fachleute, Ich möchte in einer Datei Ausdrücke der Art aa.bb.cccc umwandeln in cccc-bb-aa. aa und bb können auch nur einstellig sein. a, b und c können nur Zahlen sein. Eigentlich sollte es mit sed -e '1,$ s/\([0-9]+\)\.\([0-9]+\)\.\(....\)/\3-\2-\1/g' Quelldatei > Zieldatei gehen. sed scheint den regulären Ausdruck aber gar nicht erst zu finden. Kann da ein Fachmann helfen? Gruß Stefan
* Stefan Schlörholz schrieb am 29.Apr.2003:
Ich möchte in einer Datei Ausdrücke der Art aa.bb.cccc umwandeln in cccc-bb-aa. aa und bb können auch nur einstellig sein. a, b und c können nur Zahlen sein.
Kann es sein, daß bb Zahlen zwischen 1 und 12 sind, und aa Zahlen zwischen 1 und 31? Nur so als Vermutung? Und cccc so ca. um 2000 sich bewegt? ;)
Eigentlich sollte es mit
sed -e '1,$ s/\([0-9]+\)\.\([0-9]+\)\.\(....\)/\3-\2-\1/g' Quelldatei > Zieldatei
gehen. sed scheint den regulären Ausdruck aber gar nicht erst zu finden.
Mach mal ein \ vor dem +. Bei sed steht \+ für beliebig viele, aber mindestens eins, und + steht für das + selber. Bernd -- ACK = ACKnowledge = Zustimmung | NAC = No ACknowledge = keine Zustimmung DAU = Dümmster Anzunehmender User | LOL = Laughing Out Loud = Lautes Lachen IIRC = If I Remember Correctly = Falls ich mich richtig erinnere OT = Off Topic = Am Thema (der Liste) vorbei |Zufallssignatur 11
Stefan Schlörholz wrote:
Eigentlich sollte es mit sed -e '1,$ s/\([0-9]+\)\.\([0-9]+\)\.\(....\)/\3-\2-\1/g' Quelldatei > Zieldatei gehen. sed scheint den regulären Ausdruck aber gar nicht erst zu finden.
Kann da ein Fachmann helfen?
Naja, ich probier's mal: Das + ist ERE, sed ist BRE (wird in "man 7 regex" erklaert). ein '\+' koennte funktionieren, wenn sed mit GNU_Erweiterungen kompiliert wurde. Peter -- Falls dir meine Antwort nicht passt -> hast du http://www.lugbz.org/documents/smart-questions_de.html gelesen und befolgt?
Moin Stefan, * Stefan Schlörholz schrieb am 29 Apr 2003:
Ich möchte in einer Datei Ausdrücke der Art aa.bb.cccc umwandeln in cccc-bb-aa. aa und bb können auch nur einstellig sein. a, b und c können nur Zahlen sein.
sed -e '1,$ s/\([0-9]+\)\.\([0-9]+\)\.\(....\)/\3-\2-\1/g' Quelldatei > Zieldatei
sed -e 's/\([0-9]\+\)\.\([0-9]\+\)\.\(....\)/\3-\2-\1/g' Quelldatei Gruß, Sebastian -- Do not meddle in the affairs of wizards, for they are subtle and quick to anger. Sebastian Helms - http://www.helms.sh - mailto:mail@helms.sh (PGP welcome) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.sh/faq/
On Die, 29 Apr 2003 at 20:07 (+0200), Stefan Schlörholz wrote:
Hallo Fachleute,
Ich möchte in einer Datei Ausdrücke der Art aa.bb.cccc umwandeln in cccc-bb-aa. aa und bb können auch nur einstellig sein. a, b und c können nur Zahlen sein.
Eigentlich sollte es mit
sed -e '1,$ s/\([0-9]+\)\.\([0-9]+\)\.\(....\)/\3-\2-\1/g' Quelldatei > Zieldatei
gehen. sed scheint den regulären Ausdruck aber gar nicht erst zu finden.
jan@k500:~/tmp> echo 29.4.2003 | sed 's/\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)/\3-\2-\1/g' 2003-4-29 Jan
participants (5)
-
B.Brodesser@t-online.de
-
Jan.Trippler@t-online.de
-
Peter Wiersig
-
Sebastian Helms
-
Stefan Schlörholz