sed

sed Kommando for at erstatte en streng i en fil

sed Kommando for at erstatte en streng i en fil
Når vi arbejder med nogen form for filer, er det en meget almindelig praksis at foretage ændringer af disse filer ved at finde og erstatte ord. De fleste af teksteditorerne leverer forskellige GUI-baserede metoder til at udføre disse ændringer. Men til tider har du brug for en måde at finde og erstatte ordene i en fil via terminalen. Derfor går vi i denne artikel igennem metoden til at bruge kommandoen sed til at erstatte en streng i en tekstfil. Vi vil også kaste lys over de forskellige scenarier, hvor denne kommando kan bruges.

Bemærk: Vi bruger Linux Mint 20 til at demonstrere brugen af ​​sed-kommandoen til at erstatte en streng i en fil. Du kan også bruge enhver anden smag af Linux, hvis du ønsker det.

Anvendelse af sed Command:

Nu skal vi vise dig nogle meget interessante eksempler til at skildre brugen af ​​kommandoen sed i Linux. Lad os se, hvordan denne kommando fungerer i forskellige scenarier.

Oprettelse af en tekstfil til demonstration:

For at demonstrere brugen af ​​kommandoen sed vil vi gerne arbejde med en tekstfil. Du kan dog endda oprette en Bash-fil eller en hvilken som helst anden fil efter eget valg. For det andet opretter vi filen i hjemmekataloget, så vi ikke behøver at specificere komplekse stier, mens vi får adgang til denne fil. For at oprette en tekstfil skal følgende trin udføres:

Klik på ikonet Filhåndtering på din Linux Mint 20-proceslinje:

Opret nu en ny tekstfil i hjemmebiblioteket ved at højreklikke et vilkårligt sted derovre og derefter vælge indstillingen Nyt dokument i menuen Cascading og indstillingen Tom dokument i subcascading-menuen. Når tekstfilen er oprettet, skal du give den et passende navn. Til dette særlige eksempel har jeg navngivet det som sed.txt.

Dobbeltklik på denne fil for at åbne den og skriv enhver tilfældig tekst i den som vist på billedet nedenfor. Gem denne tekstfil ved at trykke på Ctrl + S og luk den derefter.

Start nu terminalen i Linux Mint 20 som vist på følgende billede:

Efter lanceringen af ​​terminalen i Linux Mint 20 kan du gennemgå alle eksemplerne nævnt nedenfor en efter en.

Brug af sed-kommandoen til at erstatte alle forekomster af et givet ord:

Du kan bruge kommandoen sed til at erstatte alle forekomster af et givet ord i en tekstfil. Syntaksen for at nå dette mål er nævnt nedenfor:

$ sed 's / sed / FindWord / ReplaceWord /' fil.txt

Her skal du erstatte FindWord med det ord, du vil erstatte, og ReplaceWord med det ord, der skal erstattes. Desuden skal du også erstatte "fil" med navnet på den fil, hvor du vil foretage disse udskiftninger. I dette scenario har jeg erstattet FindWord med sed og ReplaceWord med erstatte. Vores filnavn blev sed.txt. Det vises også i følgende billede:

Den vellykkede udførelse af denne kommando viser dig de ændringer, der er sket på grund af kørsel af denne kommando på din terminal:

Brug kommandoen sed til at erstatte den niende forekomst af et givet ord i hver linje:

Ovenstående scenario var det enkleste erstatningsscenarie, men til tider vil du ikke erstatte alle forekomster af et ord, men du vil kun erstatte den første, anden eller nte forekomst af ordet i alle linjerne. For at gøre dette kan du udføre følgende kommando:

$ sed 's / FindWord / ReplaceWord / num' fil.txt

Her skal du erstatte FindWord med det ord, du vil erstatte, og ReplaceWord med det ord, der skal erstattes. Desuden skal du også erstatte "fil" med navnet på den fil, hvor du vil foretage disse udskiftninger. I dette scenario har jeg erstattet FindWord erstat og Erstat ord med sed. Vores filnavn blev sed.txt. Også num refererer til forekomsten eller placeringen af ​​det ord, der skal erstattes. I det demonstrerede eksempel vil jeg erstatte den første forekomst af erstatte med sed i hver linje som vist på billedet nedenfor:

Den vellykkede udførelse af denne kommando viser dig de ændringer, der er sket på grund af kørsel af denne kommando på din terminal:

Brug af kommandoen sed til at erstatte et givet ord i en bestemt linje:

Til tider vil du kun erstatte et givet ord i en bestemt linje og ikke i hele dokumentet. For at gøre det skal du eksplicit angive det bestemte linjenummer i følgende kommando:

$ sed 'LineNum s / FindWord / ReplaceWord /' fil.txt

Her skal du erstatte FindWord med det ord, du vil erstatte, og ReplaceWord med det ord, der skal erstattes. Desuden skal du også erstatte "fil" med navnet på den fil, hvor du vil foretage disse udskiftninger. I dette scenarie har jeg erstattet FindWord sed og ReplaceWord med erstatte. Vores filnavn blev sed.txt. Du skal også erstatte LineNum med linjenummeret på den bestemte linje, hvor du vil foretage udskiftningen. I dette eksempel ønskede vi at erstatte sed med erstatte i linje nummer 2 i vores fil som vist i følgende billede:

Den vellykkede udførelse af denne kommando viser dig de ændringer, der er sket på grund af at køre denne kommando på din terminal. Du kan nemt kontrollere, at de nævnte ændringer kun er sket på linje nummer 2 i vores fil og ikke i hele teksten.

Konklusion:

Når du føler behov for at erstatte et ord i en fil, er det allerførste, du skal gøre, at identificere dit særlige krav i.e. om du vil erstatte det specifikke ord i hele filen, eller du vil erstatte en bestemt forekomst af det bestemte ord, eller du vil erstatte det ord i en bestemt linje. Når du har identificeret dit særlige scenario, kan du bruge den specifikke metode fra eksemplerne, der er diskuteret i denne artikel.

Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...
Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...