Thread perl one liner : string suchen und ersetzen wert (unix) (17 answers)
Opened by bora99 at 2012-05-08 15:07

topeg
 2012-05-10 02:19
#158271 #158271
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
2012-05-09T21:44:00 FIFO
Whitespace innerhalb eines @ARGV-Elements kann ja eigentlich nur vorkommen, wenn dieses einen quoted string enthält ... ich würde diesen Fall eher nicht zulassen.

script.pl "/pfad/zu einer/datei mit space" "ein config wert = text mit space" 'b = "a = b = c"' c=12345
So was ist nicht ungewöhnlich, und sollte beachtet werden. Z.B hat die Samba-Config Schlüssel mit Leerzeichen und auch Werte die Gleichheitszeichen enthalten dürfen.
Wenn man schon einen Parser für unbekannte Konfigurationen schreibt, dann sollte er möglichst tolerant sein, meine ich.

2012-05-09T21:44:00 FIFO
Deine Version gilt für den Fall, dass die Kommentierung vor 'eintrag' beginnt, im Beispiel des OP war der Kommentar an die key=value Zeile angehängt.

Ich schrieb ^([^#]eintrag\s*=\s*)\d+ und habe darin ein *? vergessen korrekt wäre ^([^#]*?eintrag\s*=\s*)\d+. Damit darf vom Anfang der Zeile bis "eintrag" beliebig viele Zeichen aber kein "#" vorkommen. Vorher wurde erzwungen das zwischen Anfang der Zeile und "eintrag" ein Zeichen vorkommt das kein "#" ist. (beachte [^ ... ] das ^ invertiert den Inhalt)

View full thread perl one liner : string suchen und ersetzen wert (unix)