Arno wrote (at 2021-05-19 07:44 +0200):
Kann mir die Zeile jemand erklären?
Der Ausdruck \([0-9]\)\s*$ bedeutet, fange die Ziffern,
die nur durch irgendwelche Whitespace vom Zeilenende
getrennt sind. und "\1" in "\1}," setze die "gefangenen"
Zeichen vor dem }, wieder ein. Der Autor ging davon aus,
dass das 0x0d als Whitespace erkannt wird.
Gibt es kein "*" das jeden Charakter
beschreibt?
Das wäre ".*":
. => ein bel. Zeichen (aber auch whitespace!)
* => beliebig viele davon
Wieso versagt das so kläglich nur weil es im
Windows-Format ist? Ich
dachte schon an sowas, aber Zeilenende ist Zeilenende.
Eben nicht: unter Unix ist es das Zeichen 0x0a, unter DOS
sind es die zwei Zeichen 0x0d 0x0a (funfact: unter MAC war es mal 0x0d)
Ich bin aber auch überrascht, dass dieser Trick bei sed nötig ist.
Mit freundlichem Gruß / With kind regards
Holger Klawitter
--
listen <at> klawitter <dot> de
Viele Dank, das war es :)
Man braucht so ein regexp / sed Manual auf einer (großen) Seite ;)
Viele Grüße,
Arno