Hvordan bruke SED for å redigere fil på plass

Hvordan bruke SED for å redigere fil på plass

Linux støtter forskjellige typer kommandolinjeverktøy for å automatisere oppgavene som gjør Linux i den ledende OS -linjen; På grunn av dens betydning og bruk har den hundrevis av distribusjoner som er basert på Linux, og de støtter mange kommandoer for å utføre handlinger automatisk.

Det er et stort basseng med kommandoer tilgjengelig for Ubuntu og SED -kommandoverktøy er en av dem; SED -kommandoen kan brukes til å utføre grunnleggende operasjoner på tekstfiler som redigering, slette tekst i en fil.

Ved siden av disse primære handlingene gir SED lang liste over støttede alternativer som kan brukes til å manipulere utgangen i henhold til brukerkrav, inspirert av dette; Vi har samlet en guide som vil demonstrere å holde endringene i den opprinnelige filen ved hjelp av SED -kommandoen:

Hvordan redigere fil på plass ved hjelp av SED -kommandoen

Dette alternativet med SED -kommandoen brukes til å redigere fil og lagre endringene i den opprinnelige og kan brukes med alle operasjoner av SED -kommando:

Syntaks for dette alternativet er beskrevet nedenfor:

Syntaks

sed -i kommando [filnavn]

eller

sed--in-place kommando [filnavn]

I syntaksen som er gitt ovenfor, er alternativet “-i” konstant (når du gjør i filendringer) og “Kommando” -tnøkkelordet inneholder operasjonene (substitusjon, sletting, vedlegg) som utføres ved hjelp av SED-kommandoen; Og til slutt leder "Filnavnet" til navnet på filen der alle handlingene er iverksatt som er tilknyttet SED -kommandoen.

Vi har tatt en tekstfil som inneholder få tekstlinjer i den:

La oss trekke ut innholdet i “eksamp.tekst”Fil ved å bruke kommandoen nevnt nedenfor:

$ Cat Examp.tekst

La oss starte med den grunnleggende bruken som hvis vi bruker SED uten "-Jeg”Alternativet da vil det skrive ut resultatet på terminalen, og den opprinnelige filen vil være uendret (som sjekket ved hjelp av“ CAT ”-kommandoen) som vist nedenfor:

Forskjell mellom redigeringsfil på plass og filredigering av SED -kommandoen

I den under-nevnte kommandoen; “s”Brukes til substitusjon, og det vil erstatte ordet“Debian”Med“Ubuntu”. Dessuten brevet “g”På slutten av denne kommandoen er for global handling, betyr at erstatningen vil bli utført i hele filen:

$ sed 's/debian/ubuntu/g' examp.tekst

Og bruk nå den samme kommandoen med "-Jeg”Alternativ som gitt nedenfor; Det blir lagt merke til at ved hjelp av "-Jeg”Innholdet i den opprinnelige filen (“eksamp.tekst”) Forandres også nå, som vist nedenfor:

Merk: Du kan bruke "-på plass" i stedet for "-Jeg”; Begge alternativene har samme funksjonalitet:

$ sed -i 's/debian/ubuntu/g' examp.tekst

Hvordan redigere en bestemt fillinje på plass ved hjelp av SED -kommandoen

Og hvis du vil endre innholdet i et spesifikt linjenummer, kan du legge til numerisk verdi med "S" -brev; For eksempel vil kommandoen gitt nedenfor erstatte “Ubuntu” med “Debian” bare på linje nummer “2”, og når du først har spesifisert linjenummeret, er formålet med “G” -brevet ugyldig, slik at du også kan fjerne den:

$ sed -i '2s/Ubuntu/Debian/' Examp.tekst

Dessuten kan du plassere “$”Skilt med“s”Søkeord for bare å utføre endringene på den siste linjen i filen; Som kommandoen skrevet nedenfor vil sette ordet “Ubuntu”I stedet for“Linux-Mint”På siste linje av“eksamp.tekst”:

$ sed -i '$ s/Ubuntu/Linux -mint/' Eksamp.tekst

Hvordan slette en linje i en fil ved å bruke SED-kommandoen på stedet

Alternativet på stedet har en omfattende bruk i SED-kommandoen som diskutert ovenfor; Bortsett fra å erstatte ord i en linje, kan man slette hele linjen og lagre utdataene i overordnet fil ved å bruke "-Jeg”Alternativ: Kommandoen nevnt nedenfor vil slette linjenummer”2”Av filen“ Examp.tekst":

$ sed -i '2d' examp.tekst

Og hvis du vil slette linjene unntatt linjenummer "2”Da må du skrive kommandoen som nevnt nedenfor:

$ sed -i '2!d 'examp.tekst

Konklusjon

Ubuntu støtter en rekke kommandoer som kan brukes til å utføre de primære operasjonene på tekstfiler som hode, eller halekommandoer kan brukes til å skrive ut linjene som er tilgjengelige i starten eller slutten av en tekstfil. Imidlertid er det noen begrensninger, la oss si at du ikke kan skrive ut bare linje nummer 2 i en tekstfil ved hjelp av head -kommando (selv om linje nummer 2 kommer i hodeseksjonen i filen). SED -kommandoen leder andre kommandoer i denne forbindelse; Denne kommandoen i Ubuntu hjelper til med å utføre grunnleggende operasjoner på tekstfiler, som substitusjon, tillegg, sletting osv. Det observeres at hvis SED-kommandoen brukes bortsett fra alternativet “-i”, vil resultatet bare bli skrevet ut på terminalen. I denne artikkelen er alternativet på stedet for SED-kommandoen beskrevet i detalj og kan vedtas med alle SED-operasjoner. For å få en dyp innsikt i dette alternativet, har vi prøvd å bruke det med så mange kommandoer for å bygge opp grunnleggende for nybegynnere for nybegynnere.