Suchen und Ersetzen in Dateien mit Perl
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.
Geschrieben von Jan Theofel am 2.11.2004 um 18:44 Uhr (Permalink)
Abgelegt unter Perl
1 | josef max | 17.02.2005 um 8:06