Entfernen von Leerzeilen aus einer Datei in Perl

October 22

Einfügen von Leerzeilen in ein Perl-Skript, das Sie erstellen, ist eine einfache Sache zu tun. Es kann sein, dass etwas nicht mit Ihrer Datei stimmt oder Sie drücken Sie einfach die Enter-Taste zu oft. Egal wie es kommt wird das folgende Skript diese Leerzeilen entfernen (auch wenn sie ausgeblendete Zeichen enthalten). Dieses kurze Skript Leerzeilen entfernt nicht nur, sondern gibt eine Perl-Datei, die kompakt und einsatzbereit ist.

Anweisungen

1 Verwenden Sie das folgende Skript eigenständig oder als Teil eines größeren Skripts hinzufügen. Geben Sie in jede Zeile in den folgenden Schritten, gefolgt von der Enter-Taste.

2 Öffnen Sie Datei "filename.ext" oder stirb "$! \n";

Diese Zeile öffnet die Datei, die die leeren Zeilen hat, die Sie entfernen möchten. Der ' oder stirb "$! \n" "Befehl weist dem Skript, dass bei ein Fehler das Skript anhalten und Ausdrucken des Fehlers vorliegt.

3 offene, "Tempfile. $$" oder "$! \n";

Diese Zeile erstellt eine temporäre Datei zum Speichern der Ergebnisse.

4 während (< Datei >) {}

Diese Zeile erzeugt Anfang der Schleife die ganze Arbeit macht. Der Befehl "während" dem System sagt, dass, solange gibt es eine weitere Zeile in der Datei der Code innerhalb der {und} muss ausgeführt werden.

5 nächsten If / ^ \s*$/;

Dieser Text sagt, die Linie zu testen, der das Skript derzeit untersucht, ob es nur Leerzeichen wie ein Tab oder ein Leerzeichen enthält. Die "/ ^ \s*$/" ist der Test. Wenn das ist allen, die diese Zeile enthält dann führen Sie den "weiter" Befehl die erzählt das Skript um wieder auf die "während (< Datei >) {" Schlange, um die nächste Zeile in der Datei ohne etwas in die temporäre Datei geschrieben wird.

6 ausdrucken, $_;}

Da der "weiter" Befehl nicht ausgeführt wurde, muss dann die Zeile nicht leer sein. Also, diese Zeile sendet die Informationen in die temporäre Datei zu drucken. Die "}" ist Teil des Containers für die Schleife mit der erstellten "zwar." Wenn das Skript es findet, wird das Skript gehen zurück auf den Befehl "während" und versuchen, eine andere Linie getestet werden. Wenn keine weitere Zeilen in der Datei vorhanden sind, dann wird die Schleife beendet werden und das Skript geht auf den nächsten Befehl.

7 Schließen Sie die Datei; Schließen Sie heraus;

Diese beiden Befehle schließen die Originaldatei und der temporären Datei, die erstellt wurde, was bedeutet, dass die Dateien nicht mehr bearbeitet werden können, nachdem gibt es keine weiteren Zeilen, die überprüft werden müssen.

8 Umbenennen ("filename.ext", "Dateiname.bak")oder stirb "Fehler beim Umbenennen: $! \n";

Diese Zeile benennt die Originaldatei in Dateiname.bak, so dass es gehalten werden kann, wenn es wieder benötigt wird.

9 Umbenennen ("Tempfile. $$", "filename.ext")oder stirb "Fehler beim Umbenennen: $!";

Diese Zeile benennt die temporäre Datei, die Sie erstellt, auf den Namen der ursprünglichen Datei, mit der neuen Datei die ursprüngliche Datei überschrieben.

Das fertige Skript sollte wie folgt aussehen:

Öffnen Sie Datei "filename.ext" oder stirb "$! \n";offene, "Tempfile. $$" oder "$! \n";während (< Datei >) {}nächsten If / ^ \s*$/;ausdrucken, $_;}Schließen Sie die Datei; Schließen Sie heraus;Umbenennen ("filename.ext", "Dateiname.bak")oder stirb "Fehler beim Umbenennen: $! \n";Umbenennen ("Tempfile. $$", "filename.ext")oder stirb "Fehler beim Umbenennen: $!";

Tipps & Warnungen

  • Die Namen der Dateien können Pfadinformationen hinzugefügt haben Ihnen solche as"/this/is/the/path/filename.ext"This ist, damit das Skript nicht in demselben Ordner wie die Datei gearbeitet werden platziert werden. Wenn etwas die neu erstellte Datei einfach passiert umbenennen Sie, die backup-Datei von "Dateiname.bak", "filename.ext" die Originaldatei wiederherstellen.
  • Achten Sie darauf, dass Sie wirklich brauchen, um die Zeilen aus der Datei zu entfernen. Ansonsten kann die Datei unbrauchbar werden.