Byt ut alla förekomster av ord i en enda fil

Om du har en enda fil där du vill ersätta alla förekomster av ett enda ord med en annan kan du enkelt göra det med följande kommando:

sed 's / FindThisWord / ReplaceWithThisWord / g' file.txt

Byt ut ordet “FindThisWord” i ovanstående kommando med ordet du vill ersättas och ersätt ordet “ReplaceWithThisWord” i ovanstående kommando med ordet du vill ersätta ordet med.


Kommandot öppnas, vilket i sin tur kommer att skriva ut textfilen till skärmen, ersätta de hittade ordhändelserna med det ord du vill använda istället.
Så om vi hade följande dokument:

Apple är fantastisk!

Vi kunde köra följande kommando för att ersätta “Äpple” i ovanstående textdokument med “MacLife” istället:

sed 's / Apple / MacLife / g' sample.txt

Det redigerade dokumentet skrivs ut på skärmen för att du ska kunna se.

Skriva ändringar i filen

Allt är bra, men det här kommandot sparar inte ändringarna till den ursprungliga filen, den skriver bara ut den uppdaterade filen på skärmen. För att skriva ändringarna tillbaka till en utdatafil använder du istället följande kommando:

sed -n 's / FindthisWord / ReplaceWithThisWord / gpw output.txt' file.txt

Så, om vi fortsätter med samma exempel ovan, ersätter vi “Äpple” i meningen med “MacLife,” använd sedan följande kommando:

sed -n 's / Apple / MacLife / gpw output.txt' sample.txt

Detta gör att sed inte bara ändrar filen och skriver ut den till skärmen, men kommer också att orsaka att ändringarna skrivs tillbaka till en fil som heter “output.txt” (du kan ändra det här namnet inuti kommandot ersättningssträng.

Cory Bohon är en frilans tekniker författare, indie Mac och IOS utvecklare, och amatör fotograf. Följ artikeln författare på Twitter.