Sådan fjernes blanke linjer fra en fil i Perl

Sætte tomme linjer i en Perl-script du opretter er en nem ting at gøre.Det kan være, at der er noget galt med din fil, eller du bare ramt på Enter-tasten for mange gange.Uanset hvordan det sker, vil følgende script fjerne disse tomme linjer (selvom de indeholder skjulte tegn).Denne korte script ikke kun fjerner tomme linjer, men udsender et Perl-fil, der er kompakt og klar til brug.

Instruktioner

  1. Brug følgende script alene eller tilføje det som en del af en større script.Skriv i hver linje i de følgende trin efterfulgt af Enter-tasten.

  2. åbne FILE, "filnavn.ext" eller dø "$ \ n";

    Denne linje åbner filen, der har de tomme linjer, du vil fjerne.Den "eller dø" $! \ N "" kommando fortæller scriptet at hvis der er en fejl at stoppe scriptet og udskrive fejlen.

  3. åbner ud, "tempfile $$." Eller dø "$ \ n";

    Denne linje opretter en midlertidig fil til at gemme resultaterne.

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

    Denne linje skaber starten af ​​løkken, der gør alt arbejdet.Den ", mens

    " kommando fortæller systemet, at så længe der er en anden linje i filen koden i {og} skal udføres.

  5. næste hvis / ^ \ s * $ /;

    Denne tekst siger at teste den linje, at scriptet er i øjeblikket kigger på at se om det kun indeholder hvid-mellemrumstegn såsom en fane eller et mellemrum.Den "/ ^ \ s * $ /" er testen.Hvis det er alt, denne linje indeholder derefter udføre den "næste" kommando som fortæller scriptet at gå tilbage til den ", mens (& lt; FILE & gt;) {" linje for at få den næste linje i filen uden noget bliver skrevet til den midlertidigefil.

  6. udskrive, $ _;
    }

    Siden den "næste" kommando ikke blev henrettet, så linjen må ikke være tomme.Så denne linje sender oplysningerne til at udskrive til den midlertidige fil.Den "}" er en del af beholderen til løkken, som du har oprettet med ", mens".Når scriptet støder det, vil scriptet gå tilbage til ", mens" kommando og forsøge at få en anden linje, der skal testes.Hvis der ikke er flere linjer i filen, så løkken blive forladt, og scriptet vil gå til den næste kommando.

  7. tæt FIL;lukke;

    Efter der ikke er flere linjer, der skal kontrolleres af disse to kommandoer tæt både den oprindelige fil, og den midlertidige fil, der blev oprettet, hvilket betyder, at filerne ikke længere kan redigeres.

  8. omdøbe ("filnavn.ext", "filename.bak")
    eller dø "Fejl i Omdøb: $ \ n";

    Denne linje omdøber den originale fil til filename.bak så det kan holdes, hvis det er nødvendigt igen.

  9. omdøbe ("tempfile $$.", "Filnavn.ext")
    eller dø: "Fejl i omdøbe $!"

    Denne linje omdøber den midlertidige fil, du har oprettet til navnet på din oprindelige fil, overskrives den oprindelige fil med den nye fil.

    Den færdige script skal se sådan ud:

    åbne FILE, "filnavn.ext" eller dø, "$ \ n!"
    åbner ud, "tempfile $$." Eller dø "$ \ n";
    mens (& lt; FILE & gt;) {
    næste hvis / ^ \ s * $ /;
    udskrive, $ _;
    }
    tæt FIL;lukke;
    omdøbe ("filnavn.ext", "filename.bak")
    eller dø "Fejl i Omdøb: $ \ n";
    omdøbe ("tempfile $$.", "Filnavn.ext")
    eller dø: "Fejl i omdøbe $!"

Tips & amp;Advarsler

  • Navnene på filerne kan have sti oplysninger føjet til dem som "/this/is/the/path/filename.ext" Dette er så scriptet ikke behøver at være placeret i samme mappesom den fil, der skal arbejdes på.Hvis der sker noget med den nyoprettede fil blot omdøbe backup fil fra "filename.bak" til "filnavn.ext" for at vende tilbage til den oprindelige fil.
  • Vær sikker på at du virkelig har brug for at fjerne linjerne fra filen.Ellers kan filen blive ubrugelig.
481
0
2
Perl Programmering