Hoe te verwijderen lege regels uit een bestand in Perl

Putting lege regels in een Perl-script dat u maakt is een eenvoudig ding om te doen.Het kan zijn dat er iets mis is met uw dossier is of je gewoon druk op de Enter-toets te vaak.Maakt niet uit hoe het gebeurt, zal het volgende script deze lege regels verwijderen (zelfs als ze verborgen tekens bevatten).Deze korte script verwijdert niet alleen lege regels, maar voert een Perl-bestand dat is compact en klaar voor gebruik.

instructies

  1. Gebruik de volgende script op zijn eigen of voeg het als een onderdeel van een groter script.Typ elke regel in de volgende stappen, gevolgd door de Enter-toets.

  2. geopend FILE, "bestandsnaam.ext" of sterven "$ \ n";

    Deze lijn opent het bestand dat de lege regels die u wilt verwijderen heeft.De 'of sterven "$! \ N" "commando vertelt het script dat als er een fout is om het script te stoppen en uit te printen de fout.

  3. openen, "tempfile $$." Of sterven "$ \ n";

    Deze lijn zorgt voor een tijdelijk bestand om de resultaten op te slaan.

  4. while (& lt; FILE & gt;) {

    Deze lijn zorgt voor het begin van de lus die doet al het werk.De "terwijl" commando vertelt het systeem dat zolang er een andere lijn in het dossier van de code binnen de {} en moet worden uitgevoerd.

  5. volgende als / ^ \ s * $ /;

    Deze tekst zegt dat de lijn die het script momenteel op zoek is naar om te zien of het bevat alleen witruimte tekens, zoals een tab of een spatie te testen.De "/ ^ \ s * $ /" is de test.Als dat is alles wat deze lijn bevat voer dan de "volgende" commando dat het script vertelt om terug te gaan naar de "while (& lt; FILE & gt;) {" lijn naar de volgende regel in het bestand te krijgen zonder dat er iets wordt geschreven naar de tijdelijkebestand.

  6. uitprinten, $ _;
    }

    Sinds de "volgende" commando niet werd uitgevoerd, dan is de lijn mag niet leeg zijn.Dus, deze regel stuurt de informatie af te drukken naar het tijdelijke bestand.De "}" is deel van de houder voor de lus die u gemaakt met "terwijl. 'Wanneer het script tegenkomt, zal het script terug te gaan naar de "terwijl" commando en proberen om een ​​andere lijn te testen.Als er geen lijnen meer in het bestand, dan wordt de lus wordt verlaten en het script zal gaan naar de volgende opdracht.

  7. Bestand sluiten;sluiten uit;

    Na zijn er geen regels meer die moeten worden gecontroleerd deze twee commando's in de buurt zowel het oorspronkelijke bestand en het tijdelijke bestand dat is gemaakt, wat betekent dat de bestanden niet langer kunnen worden bewerkt.

  8. hernoemen ("bestandsnaam.ext", "filename.bak")
    of sterven "Fout in rename: $! \ N";

    Deze lijn hernoemt het originele bestand te filename.bak zodat het kan worden gehouden als het weer nodig is.

  9. hernoemen ("tempfile $$.", "Bestandsnaam.ext")
    of sterven, "Fout bij hernoemen $!"

    Deze lijn hernoemt het tijdelijke bestand dat u hebt gemaakt om de naam van het oorspronkelijke bestand overschreven het oorspronkelijke bestand met het nieuwe bestand.

    De voltooide script moet er zo uitzien:

    geopend FILE, "bestandsnaam.ext" of sterven "$ \ n"
    openen, "tempfile $$." Of sterven "$ \ n";
    terwijl (& lt; FILE & gt;) {
    volgende als / ^ \ s * $ /;
    uitprinten, $ _;
    }
    Bestand sluiten;sluiten uit;
    hernoemen ("bestandsnaam.ext", "filename.bak")
    of sterven "Fout in rename: $! \ N";
    hernoemen ("tempfile $$.", "Bestandsnaam.ext")
    of sterven, "Fout bij hernoemen $!"

Tips & amp;Waarschuwingen

  • De namen van de bestanden kunnen pad informatie aan hen toegevoegd zoals "/this/is/the/path/filename.ext hebben" Dit is zo het script heeft niet in dezelfde map te worden geplaatstals het bestand te worden gewerkt.Als er iets gebeurt met het nieuw aangemaakte bestand alleen de back-upbestand hernoemen van "filename.bak" naar "bestandsnaam.ext" om terug naar het originele bestand terug.
  • Zorg ervoor dat je echt nodig hebt om de lijnen uit het bestand te verwijderen.Anders kan het bestand onbruikbaar geworden.
20
0
2
Perl Programming