“I UNIX/Linux -økosystemet er SED -kommandoen et dedikert verktøy for redigering av strømmer, derav navnet (Stream Editor). Den mottar tekstinnganger som "strømmer" og utfører de spesifiserte operasjonene på strømmen.”
I denne guiden vil vi utforske å utføre på stedet filredigering med SED.
Forutsetninger
For å utføre trinnene som er demonstrert i denne guiden, trenger du følgende komponenter:
Redigeringsstrøm ved hjelp av SED
La oss først se på hvordan SED fungerer. Kommandostrukturen til SED er som følger:
$ sed
Følgende kommando viser frem en enkel arbeidsflyt av SED:
$ ECHO "The Quick Brown Fox" | sed -e 's/hurtig/rask/'
Her,
Hva om vi ønsket å endre tekstene til en tekstfil? SED -kommandoen kan også fungere ved hjelp av tekstfiler som strømmen. For demonstrasjon har jeg tatt tak i følgende tekstfil:
$ kattdemo.tekst
Følgende SED -kommando vil erstatte alle forekomster av de med da:
$ sed -e 's/the/da/g' demo.tekst
Sjekk innholdet i demo.tekst for endringer:
$ kattdemo.tekst
Fra det siste eksemplet kan vi se at SED bare skrev ut den resulterende strømmen på konsollen. Kildefilen (demo.tekst) ble ikke rørt.
Redigering av filer på stedet ved hjelp av SED
Som demonstrert fra forrige eksempel, er standardhandlingen til SED å skrive ut det endrede innholdet på skjermen. Det er en flott funksjon som kan forhindre tilfeldige endringer i filer. Imidlertid, hvis vi ønsket å lagre endringene i filen, trengte vi å gi noen ekstra alternativer.
En enkel og vanlig teknikk vil være å erstatte innholdet i filen med sed produksjon. Ta en titt på følgende kommando:
$ kattdemo.txt | sed 's/the/da/g' | tee -demo.tekst
Her overskriver vi innholdet i demo.tekst med utgangen fra sed kommando.
Mens kommandoen fungerer som tiltenkt, krever det å skrive flere koder. Vi involverte kat- og tee -kommandoene sammen med SED -kommandoen. Bash er også involvert i å omdirigere utgangene. Dermed er kommandoen mer ressurskrevende enn den trenger å være.
For å løse dette kan vi bruke den på stedet redigeringsfunksjonen til SED. I denne modusen, sed vil endre innholdet i filen direkte. For å påkalle redigeringsmodus på stedet, må vi bruke -Jeg eller -på plass flagg. Følgende sed Kommando implementerer det:
$ sed - -in -place -e 's/the/da/g' demo.tekst
Kryss av demo.tekst for endringer:
$ kattdemo.tekst
Som du ser endres filinnholdet uten å legge til noen ekstra komponenter.
Siste tanker
I denne guiden demonstrerte vi med hell å utføre redigeringer på stedet på tekstfiler ved hjelp av sed. Mens Sed i seg selv er et enkelt program, ligger den viktigste kraftkilden innenfor dens evne til å innlemme vanlige uttrykk. Regex tillater å beskrive veldig komplekse mønstre som SED virker på. Sjekk ut Regex i SED for å lære mer dyptgående.
Alternativt kan du bruke bashskript for å filtrere og endre innholdet i en fil. Faktisk kan du innlemme SED i skriptene dine for å finjustere tekstinnhold. Sjekk ut denne guiden for å komme i gang med bash -skripting.
Glad databehandling!