Hier mal das kürzeste Beispiel aus meiner Schulung, die ich gerade halte. Und sicher auch das Beispiel, mit dem größten Erklärungsbedarf:
#!/usr/bin/perl -i while(<>) { s/\r//g; print; }
Was macht dieser Perl-Code? Genau: Textdateien mit \r\n als Zeilenumbruch (DOS, Windows) in eine Textdatei mit \n als Zeilenumbruch (Linux, Unix) konvertieren. Dazu muss das Skript nur mit perl convert.pl file [file2] [file3] [etc.] aufgerufen werden.Die Funktionsweise ist eigentlich ganz einfach:
- Fangen wir mit der Erklärung von innen nach außen an: print; ohne jegliche Parameter schreibt einfach nur den Wert unserer Standardvariable $_.
- Die RegEx entfernt aus eben jenem $_ alle \r Elemente.
- while(<>) nimmt nun die erste Datei aus den Programmparametern und verwendte diese als Eingabe- und Ausgabedatei. Sind mehrere Dateien angegeben, werden diese nacheinander bearbeitet.
Ganz einfach, oder?
Hier mal das kürzeste Beispiel aus meiner Schulung, die ich gerade. Ich glaube hier fehlt was…?
Hier mal das kürzeste Beispiel aus meiner Schulung, die ich gerade. DIE ICH GRADE WAS !!??
Danke für den Hinweis. Das fehlte das Wort „halte“. Siehe auch meinen Eintrag Perl-Schulung diese Woche.
Noch kürze wäre
#!/usr/bin/perl -pi.bak
s/\r//g
würde jdoch nicht mehr in eine angebene Datei schreiben sondern es in der Aktuellen ersetzen und die alte als bak datei speichern