sed

sed Commando om een ​​string in een bestand te vervangen

sed Commando om een ​​string in een bestand te vervangen
Wanneer we met bestanden werken, is het heel gebruikelijk om wijzigingen aan die bestanden aan te brengen door woorden te zoeken en te vervangen. De meeste teksteditors bieden verschillende op GUI gebaseerde methoden om deze wijzigingen uit te voeren. Soms heb je echter een manier nodig om de woorden in een bestand te vinden en te vervangen via de terminal. Daarom zullen we u in dit artikel door de methode leiden om de opdracht sed te gebruiken om een ​​string in een tekstbestand te vervangen. We zullen ook licht werpen op de verschillende scenario's waarin dit commando kan worden gebruikt.

Opmerking: we zullen Linux Mint 20 gebruiken om het gebruik van de opdracht sed te demonstreren om een ​​string in een bestand te vervangen. Je kunt ook elke andere smaak van Linux gebruiken als je dat wilt.

Gebruik van sed-opdracht:

Nu gaan we je enkele zeer interessante voorbeelden laten zien voor het weergeven van het gebruik van het sed-commando in Linux. Laten we eens kijken hoe deze opdracht in verschillende scenario's werkt.

Een tekstbestand maken voor demonstratie:

Om het gebruik van het sed-commando te demonstreren, willen we werken met een tekstbestand. U kunt echter zelfs een Bash-bestand of een ander bestand naar keuze maken. Ten tweede zullen we het bestand in de Home-directory maken, zodat we geen complexe paden hoeven op te geven bij het openen van dit bestand. Voor het maken van een tekstbestand moeten de volgende stappen worden uitgevoerd:

Klik op het pictogram Bestandsbeheer op uw Linux Mint 20-taakbalk:

Maak nu een nieuw tekstbestand in de hoofdmap door met de rechtermuisknop ergens daar te klikken en vervolgens de optie Nieuw document te kiezen in het trapsgewijze menu en de optie Document leegmaken in het subcascademenu. Nadat het tekstbestand is gemaakt, geeft u het een geschikte naam. Voor dit specifieke voorbeeld heb ik het genoemd als sed.tekst.

Dubbelklik op dit bestand om het te openen en typ er willekeurige tekst in, zoals weergegeven in de onderstaande afbeelding. Sla dit tekstbestand op door op Ctrl +S te drukken en sluit het dan.

Start nu de terminal in Linux Mint 20 zoals weergegeven in de volgende afbeelding:

Na het starten van de terminal in Linux Mint 20, kun je alle onderstaande voorbeelden een voor een doornemen.

Het sed-commando gebruiken voor het vervangen van alle gebeurtenissen van een bepaald woord:

U kunt de opdracht sed gebruiken om alle voorkomens van een bepaald woord in een tekstbestand te vervangen. De syntaxis om dit doel te bereiken wordt hieronder vermeld:

$ sed 's/sed/FindWord/ReplaceWord/' bestand.tekst

Hier moet je FindWord vervangen door het woord dat je wilt vervangen en ReplaceWord door het te vervangen woord. Bovendien moet u ook "bestand" vervangen door de naam van het bestand waar u deze vervangingen wilt maken. In dit scenario heb ik FindWord vervangen door sed en ReplaceWord door vervangen. Onze bestandsnaam was sed.tekst. Het wordt ook weergegeven in de volgende afbeelding:

De succesvolle uitvoering van deze opdracht toont u de wijzigingen die zijn opgetreden door het uitvoeren van deze opdracht op uw terminal:

Het sed-commando gebruiken om het zoveelste voorkomen van een gegeven woord in elke regel te vervangen:

Het bovenstaande scenario was het eenvoudigste vervangingsscenario, maar soms wilt u niet alle voorkomens van een woord vervangen, maar wilt u alleen het eerste, tweede of nde voorkomen van dat woord in alle regels vervangen. Om dit te doen, kunt u de volgende opdracht uitvoeren:

$ sed 's/FindWord/ReplaceWord/num'-bestand.tekst

Hier moet u FindWord vervangen door het woord dat u wilt vervangen en ReplaceWord door het te vervangen woord. Bovendien moet u ook "bestand" vervangen door de naam van het bestand waar u deze vervangingen wilt maken. In dit scenario heb ik FindWord vervangen en ReplaceWord vervangen door sed. Onze bestandsnaam was sed.tekst. Ook verwijst num naar het voorkomen of de positie van het te vervangen woord. In het gedemonstreerde voorbeeld wil ik het eerste exemplaar van vervangen vervangen door sed in elke regel, zoals weergegeven in de onderstaande afbeelding:

De succesvolle uitvoering van deze opdracht toont u de wijzigingen die zijn opgetreden door het uitvoeren van deze opdracht op uw terminal:

Het sed-commando gebruiken voor het vervangen van een gegeven woord in een specifieke regel:

Soms wil je alleen een bepaald woord in een specifieke regel vervangen en niet in het hele document. Om dat te doen, moet u expliciet dat specifieke regelnummer opgeven in de volgende opdracht:

$ sed 'LineNum s/FindWord/ReplaceWord/' bestand.tekst

Hier moet je FindWord vervangen door het woord dat je wilt vervangen en ReplaceWord door het te vervangen woord. Bovendien moet u ook "bestand" vervangen door de naam van het bestand waar u deze vervangingen wilt maken. In dit scenario heb ik FindWord sed en ReplaceWord vervangen door Replace. Onze bestandsnaam was sed.tekst. U moet ook LineNum vervangen door het regelnummer van de specifieke regel waarin u de vervanging wilt maken. In dit voorbeeld wilden we sed vervangen door vervangen in regel nummer 2 van ons bestand, zoals weergegeven in de volgende afbeelding:

De succesvolle uitvoering van deze opdracht toont u de wijzigingen die zijn opgetreden door het uitvoeren van deze opdracht op uw terminal. U kunt eenvoudig controleren of de genoemde wijzigingen alleen hebben plaatsgevonden op regel 2 van ons bestand en niet in de hele tekst.

Conclusie:

Wanneer u de behoefte voelt om een ​​woord in een bestand te vervangen, is het allereerste wat u hoeft te doen uw specifieke vereiste te identificeren i.e. of je dat specifieke woord in het hele bestand wilt vervangen, of je wilt een specifiek voorkomen van dat specifieke woord vervangen, of je wilt dat woord in een specifieke regel vervangen. Zodra u uw specifieke scenario hebt geïdentificeerd, kunt u die specifieke methode gebruiken uit de voorbeelden die in dit artikel worden besproken.

Open source-poorten van commerciële game-engines
Gratis, open source en platformonafhankelijke game-engine-recreaties kunnen worden gebruikt om zowel oude als enkele van de vrij recente gametitels te...
Beste opdrachtregelspellen voor Linux
De opdrachtregel is niet alleen je grootste bondgenoot bij het gebruik van Linux, hij kan ook de bron van entertainment zijn omdat je hem kunt gebruik...
Beste gamepad-toewijzingsapps voor Linux
Als je graag games op Linux speelt met een gamepad in plaats van een typisch toetsenbord- en muisinvoersysteem, zijn er enkele handige apps voor jou. ...