Hvordan slette tomme linjer ved hjelp av SED

Hvordan slette tomme linjer ved hjelp av SED
Det er to mulige metoder for å slette tomme linjer fra en tekstfil ved hjelp av SED; Metodene er listet opp nedenfor og blir diskutert i detalj i den kommende delen av denne guiden.
  • Metode 1: Hvordan slette alle tomme linjer i en tekstfil ved hjelp av SED
  • Metode 2: Hvordan slette spesifikke linjer fra tekstfil ved hjelp av SED

Metode 1: Hvordan slette alle tomme linjer i en tekstfil ved hjelp av SED

La oss forstå syntaksen for å slette tomme linjer ved å bruke SED:

Syntaks

sed [alternativer] '/^$/d' [filnavn]

'/^$/d'er kjernedelen av denne kommandoen; hvor "^”Symbol viser at slettingen må utføres fra begynnelsesmidlene fra første linje; “$”Representerer at den må gå til den siste linjen i tekstfilen og“d”Viser at sletting pågår.

Denne delen vil guide deg til å slette alle linjene i en tekstfil ved hjelp av Stream Editor (SED):

Vi har laget en tekstfil "slett.tekst; For det første, få innholdet i denne filen ved å bruke "katt”Kommando som gitt nedenfor, og vi har brukt“-n”Alternativ med det, slik at vi også kan få linjenumre:

Det observeres at det er flere tomme linjer, og de påvirker estetikken til denne tekstfilen, og leserne kan ikke ta hensyn til slikt innhold.

$ cat -n slett.tekst

Så for å unngå ovennevnte situasjon; Du må fjerne de tomme linjene for å effektivisere leseprosessen; Kommandoen nevnt nedenfor vil fjerne alle disse linjene fra “slett.tekst”Fil.

Nå kan du legge merke til at de tomme linjene blir vasket ut og bare disse linjene er skrevet ut som inneholder litt tekst, men resultatet vises bare på terminalen mens den opprinnelige filen forblir den samme:

$ sed '/^$/d' slett.tekst

Hvis du vil fjerne de tomme linjene og oppdatere den opprinnelige filen også, må du bruke alternativet på stedet "-Jeg”Og den nedenfor-nevnte kommandoen vil hjelpe deg å gjøre det:

$ sed -i '/^$/d' slett.tekst

Metode 2: Hvordan slette utvalgte tomme linjer i en tekstfil ved hjelp av SED

Syntaksen for å slette spesifikke linjer i en tekstfil er skrevet nedenfor:

Syntaks

sed [alternativer] '(linjetall) d' [filnavn]

Hoveddelen av syntaks som kommandoen er avhengig av er “(linjetall) D '”; Du må legge det nøyaktige linjen antall tom linje i “(linjenummer)”Og brevet“d”Viser at det innsatte linjenummeret blir slettet:

Du kan slette noen spesifikke linjer i en tekstfil ved hjelp av SED -kommando; Vi har laget en ny tekstfil “ny.tekst”For denne delen. For eksempel viser output fra kommandoen nedenfor at linjenummer "2" er tom:

$ katt -n newfile.tekst

Og hvis du bare vil kjøre kommandoen for å slette denne linjen, må du spesifisere linjenummeret som vi gjorde i kommandoen nevnt nedenfor:

$ sed '2d' newfile.tekst

Du kan også slette påfølgende linjer ved å bruke denne metoden; for eksempel "ny.tekst”Filen har 3 tomme linjer”4,5,6”Som det kan sees på bildet nedenfor:

$ katt -n ny.tekst

Å fjerne disse tre påfølgende linjene; du må sette inn “,”Mellom start- og sluttlinjetallene som kan sees i kommandoen nedenfor:

$ sed '4,6d' ny.tekst

Til slutt kan du også bruke alternativet på plass "-Jeg”For å lagre endringene permanent i filen som uten dette alternativet, skriver SED -kommandoen ut resultatet på terminalen, da vi har endret kommandoen ovenfor for å bruke den med"-Jeg”Alternativ:

$ sed -i '4,6d' ny.tekst

Konklusjon

Ubuntu støtter flere måter å manipulere dataene i en tekstfil; For eksempel kan du bruke standard tekstredaktør av Ubuntu, Nano Editor etc. Imidlertid leder SED -kommandolinjens verktøyet til Ubuntu alle disse redaktørene på grunn av dens funksjonaliteter som å få tilgang til filen fra terminalen og gjøre endringer uten å åpne den. I denne artikkelen har vi brukt SED -kommandoen for å fjerne de tomme linjene fra tekstfilen og beskrevet to metoder for denne operasjonen. “Metode 1”Er egnet spesielt når du har hundrevis av linjer i en tekstfil og du vil slette alle tomme linjer samtidig: på den annen side,"Metode 2”Er egnet for å slette de tomme linjene i et lite dokument der du kan slette linjer en etter en. Imidlertid må du se etter tomme linjer selv, hvis du vil følge "Metode 2”: Så hvis sammenligningen er trukket mellom begge metodene,“Metode 1”Utkonkurrerer”Metode 2”Om sletting av tomme linjer.