sed

sed Kommando att ersätta en sträng i en fil

sed Kommando att ersätta en sträng i en fil
När vi arbetar med någon form av filer är det en mycket vanlig praxis att göra ändringar i dessa filer genom att hitta och ersätta ord. De flesta textredigerare tillhandahåller olika GUI-baserade metoder för att utföra dessa ändringar. Ibland behöver du dock ett sätt att hitta och ersätta orden i en fil via terminalen. Därför kommer vi i den här artikeln att gå igenom metoden för att använda kommandot sed för att ersätta en sträng i en textfil. Vi kommer också att belysa de olika scenarierna där detta kommando kan användas.

Obs! Vi kommer att använda Linux Mint 20 för att demonstrera användningen av kommandot sed för att ersätta en sträng i en fil. Du kan också använda någon annan smak av Linux om du vill.

Användning av sed Command:

Nu ska vi visa dig några mycket intressanta exempel för att skildra användningen av kommandot sed i Linux. Låt oss se hur detta kommando fungerar i olika scenarier.

Skapa en textfil för demonstration:

För att visa användningen av sed-kommandot vill vi arbeta med en textfil. Du kan dock till och med skapa en Bash-fil eller någon annan fil du väljer. För det andra kommer vi att skapa filen i hemkatalogen så att vi inte behöver ange några komplexa sökvägar när vi kommer åt den här filen. Följande steg ska utföras för att skapa en textfil:

Klicka på File Manager-ikonen i din aktivitetsfält för Linux Mint 20:

Skapa nu en ny textfil i hemkatalogen genom att högerklicka var som helst där och sedan välja alternativet Nytt dokument från kaskadmenyn och Töm dokumentalternativ från underkaskadmenyn. När textfilen har skapats, ge den ett lämpligt namn. För detta speciella exempel har jag nämnt det som sed.Text.

Dubbelklicka på den här filen för att öppna den och skriv vilken slumpmässig text som helst i bilden nedan. Spara den här textfilen genom att trycka på Ctrl + S och stäng den.

Starta nu terminalen i Linux Mint 20 som visas i följande bild:

Efter att ha startat terminalen i Linux Mint 20 kan du gå igenom alla exemplen som nämns nedan en efter en.

Använda sed-kommandot för att ersätta alla förekomster av ett givet ord:

Du kan använda kommandot sed för att ersätta alla förekomster av ett visst ord i en textfil. Syntaxen för att uppnå detta mål nämns nedan:

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

Här måste du ersätta FindWord med ordet som du vill ersätta och ReplaceWord med ordet som ska ersättas. Dessutom måste du ersätta "fil" med namnet på filen där du vill göra dessa ersättare. I det här scenariot har jag ersatt FindWord med sed och ReplaceWord med ersättare. Vårt filnamn var sed.Text. Det visas också i följande bild:

Det framgångsrika utförandet av detta kommando visar de ändringar som har inträffat på grund av att du kör det här kommandot på din terminal:

Använd kommandot sed för att ersätta den n: e Förekomsten av ett givet ord i varje rad:

Ovanstående scenario var det enklaste ersättningsscenariot, men ibland vill du inte ersätta alla förekomster av ett ord utan du vill bara ersätta den första, andra eller n: a förekomsten av det ordet i alla rader. För att göra detta kan du utföra följande kommando:

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

Här måste du ersätta FindWord med ordet som du vill ersätta och ReplaceWord med ordet som ska ersättas. Dessutom måste du ersätta "fil" med namnet på filen där du vill göra dessa ersättare. I det här scenariot har jag ersatt FindWord ersätt och Ersätt ord med sed. Vårt filnamn var sed.Text. Dessutom hänvisar num till förekomsten eller positionen för ordet som ska ersättas. I det demonstrerade exemplet vill jag ersätta den första förekomsten av ersätt med sed i varje rad som visas i bilden nedan:

Det framgångsrika utförandet av detta kommando visar de ändringar som har inträffat på grund av att du kör det här kommandot på din terminal:

Använda kommandot sed för att ersätta ett givet ord i en specifik rad:

Ibland vill du bara ersätta ett visst ord i en viss rad och inte i hela dokumentet. För att göra det måste du uttryckligen ange det specifika radnumret i följande kommando:

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

Här måste du ersätta FindWord med ordet som du vill ersätta och ReplaceWord med ordet som ska ersättas. Dessutom måste du också ersätta "fil" med namnet på filen där du vill göra dessa ersättningar. I det här scenariot har jag ersatt FindWord sed och ReplaceWord med ersätt. Vårt filnamn var sed.Text. Du måste också ersätta LineNum med radnumret för den specifika rad där du vill byta ut. I det här exemplet ville vi ersätta sed med ersätta i rad nummer 2 i vår fil som visas i följande bild:

Det lyckade utförandet av detta kommando visar de ändringar som har inträffat på grund av att du kör det här kommandot på din terminal. Du kan enkelt verifiera att de nämnda ändringarna endast har skett på rad nummer 2 i vår fil och inte i hela texten.

Slutsats:

När du känner att du behöver byta ut ett ord i en fil är det allra första du behöver göra att identifiera ditt specifika krav i.e. om du vill ersätta det specifika ordet i hela filen, eller om du vill ersätta en viss förekomst av det specifika ordet, eller om du vill ersätta det ordet i en viss rad. När du har identifierat ditt specifika scenario kan du använda den specifika metoden från exemplen som diskuteras i den här artikeln.

Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...
Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...