Thread Einzeilerfehler (2 answers)
Opened by lukastonner at 2011-03-01 19:09

FIFO
 2011-03-01 19:25
#146160 #146160
User since
2005-06-01
469 Artikel
BenutzerIn

user image
2011-03-01T18:09:33 lukastonner
Hallo,
Code: (dl )
perl -p -i.old -nle 's/\/(\w+)(\d{8})/\/\2\/\1\2/;print $_;' $inputdirectory/update.txt


schreib mal nur
Code: (dl )
perl -pi.old -e 's~(/\w+)(\d{8})~/$2$1$2~' filename


Das -p impliziert schon den print-Befehl, und Du führst ihn dann nochmal explizit aus.
Das zusätzliche -n ist auch wenig hilfreich, und ob Du -l wirklich brauchst, kannst Du in perldoc perlrun nachsehen.

edit:
1. Es sieht nicht mehr ganz so mikadomäßig aus, wenn Du im s///-Befehl nicht / als Delimiter verwendest, sondern ein Zeichen, das möglichst in der RegEx nicht auftaucht edit2: und Du brauchst den / nicht escapen, was nochmal übersichtlicher wird :)
2. statt der Backreferences \1 etc. besser $1 etc. verwenden

Editiert von FIFO: ein ~ zuviel, entfernt ...

Editiert von FIFO: edit2
Last edited: 2011-03-02 11:12:57 +0100 (CET)
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"

View full thread Einzeilerfehler