Zum Inhalt springen

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:

  1. Fangen wir mit der Erklärung von innen nach außen an: print; ohne jegliche Parameter schreibt einfach nur den Wert unserer Standardvariable $_.
  2. Die RegEx entfernt aus eben jenem $_ alle \r Elemente.
  3. 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?

4 Kommentare

  1. josef max

    Hier mal das kürzeste Beispiel aus meiner Schulung, die ich gerade. Ich glaube hier fehlt was…?

  2. josef max

    Hier mal das kürzeste Beispiel aus meiner Schulung, die ich gerade. DIE ICH GRADE WAS !!??

  3. Icke

    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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.