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