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

Sed Command Replace String File



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 hebt u echter een manier nodig om de woorden in een bestand via de terminal te vinden en te vervangen. 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 u 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 graag met een tekstbestand werken. 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.txt.



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 vervolgens.

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 één voor één 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/Zoekwoord/VervangWoord/’ bestand.txt

Hier moet u FindWord vervangen door het woord dat u wilt vervangen en ReplaceWord door het te vervangen woord. Bovendien moet u het bestand ook 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.txt. 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/Zoekwoord/VervangWoord/num' bestand.txt

Hier moet u FindWord vervangen door het woord dat u wilt vervangen en ReplaceWord door het te vervangen woord. Bovendien moet u het bestand ook 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.txt. 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/Zoekwoord/VervangWoord/’ bestand.txt

Hier moet u FindWord vervangen door het woord dat u wilt vervangen en ReplaceWord door het te vervangen woord. Bovendien moet u het bestand ook vervangen door de naam van het bestand waar u deze vervangingen wilt maken. In dit scenario heb ik FindWord sed en ReplaceWord vervangen door vervangen. Onze bestandsnaam was sed.txt. U moet ook LineNum vervangen door het regelnummer van de specifieke regel waarin u de vervanging wilt uitvoeren. 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 op regel 2 van ons bestand hebben plaatsgevonden en niet in de hele tekst.

Conclusie:

Telkens wanneer u de behoefte voelt om een ​​woord in een bestand te vervangen, is het allereerste wat u hoeft te doen om uw specifieke vereiste te identificeren, dwz of u dat specifieke woord in het hele bestand wilt vervangen, of dat u een specifiek voorkomen van dat specifieke woord, of u 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.