sed Käsk faili stringi asendamiseks

Sed Command Replace String File

Kui töötame mis tahes failidega, on nende failide muutmine sõnade leidmise ja asendamise teel väga levinud tava. Enamik tekstiredaktoreid pakub nende muudatuste tegemiseks erinevaid GUI -põhiseid meetodeid. Kuid mõnikord on teil vaja terminali kaudu failis olevaid sõnu leida ja asendada. Seetõttu tutvustame selles artiklis meetodit, kuidas käsku sed kasutada tekstifaili stringi asendamiseks. Samuti tutvustame erinevaid stsenaariume, mille puhul seda käsku saab kasutada.

Märkus. Me kasutame Linux Mint 20, et demonstreerida käsu sed kasutamist faili stringi asendamiseks. Soovi korral saate kasutada ka mis tahes muud Linuxi maitset.



Sed käsu kasutamine:

Nüüd näitame teile väga huvitavaid näiteid käsu sed kasutamise kohta Linuxis. Vaatame, kuidas see käsk erinevates stsenaariumides töötab.



Demonstreerimiseks tekstifaili loomine:

Sed käsu kasutamise demonstreerimiseks tahaksime töötada tekstifailiga. Siiski saate isegi luua Bash -faili või muu oma valitud faili. Teiseks loome faili kodukataloogi, nii et me ei pea sellele failile juurdepääsu ajal määrama keerulisi teid. Tekstifaili loomiseks tuleb teha järgmised toimingud:



Klõpsake Linux Mint 20 tegumiribal asuvat failihalduri ikooni:

Nüüd looge kodukataloogis uus tekstifail, paremklõpsates seal suvalisel kohal ja seejärel valides kaskaadmenüüst suvand Uus dokument ja alamkaskaadmenüüst suvand Tühjenda dokument. Kui tekstifail on loodud, andke sellele sobiv nimi. Selle konkreetse näite jaoks olen selle nimetanud sed.txt -ks.



Selle faili avamiseks topeltklõpsake seda ja tippige sinna suvaline tekst, nagu on näidatud alloleval pildil. Salvestage see tekstifail, vajutades klahvikombinatsiooni Ctrl +S ja sulgege see.

Nüüd käivitage terminal Linux Mint 20, nagu on näidatud järgmisel pildil:

Pärast terminali käivitamist Linux Mint 20 -s saate kõik allpool toodud näited ükshaaval läbi vaadata.

Käsu sed kasutamine kõigi antud sõna esinemiste asendamiseks:

Käsu sed abil saate asendada tekstifailis kõik antud sõna esinemised. Selle eesmärgi saavutamise süntaks on toodud allpool:

$sed’S/sed/FindWord/Asenda sõna/'Fail.txt

Siin peate asendama FindWordi sõnaga, mille soovite asendada, ja ReplaceWord asendatava sõnaga. Lisaks peate faili asendama ka selle faili nimega, kuhu soovite need asendused teha. Selle stsenaariumi korral olen FindWordi asendanud sed -ga ja ReplaceWord asendusega. Meie failinimi oli sed.txt. See on näidatud ka järgmisel pildil:

Selle käsu edukas täitmine näitab teile muudatusi, mis on toimunud selle käsu terminalis käivitamise tõttu:

Kasutades sed käsku antud sõna n -nda esinemise asendamiseks igal real:

Ülaltoodud stsenaarium oli lihtsaim asendusstsenaarium, kuid mõnikord ei soovi te asendada kõiki sõna esinemisi, vaid soovite asendada ainult selle sõna esimese, teise või n -nda esinemise kõikidel ridadel. Selleks saate käivitada järgmise käsu:

$sed’S/FindWord/Asenda sõna/num 'file.txt

Siin peate asendama FindWordi sõnaga, mille soovite asendada, ja ReplaceWord asendatava sõnaga. Lisaks peate faili asendama ka selle faili nimega, kuhu soovite need asendused teha. Selle stsenaariumi korral olen asendanud FindWordi asendamise ja asendamise sõna sõnaga sed. Meie failinimi oli sed.txt. Samuti viitab num asendatava sõna esinemisele või positsioonile. Näidatud näites tahan asendada esmakordse asendamise sediga igal real, nagu on näidatud alloleval pildil:

Selle käsu edukas täitmine näitab teile muudatusi, mis on toimunud selle käsu terminalis käivitamise tõttu:

Käsu sed kasutamine antud sõna asendamiseks kindlal real:

Mõnikord soovite asendada ainult antud sõna konkreetsel real, mitte kogu dokumendis. Selleks peate selgesõnaliselt määrama selle rea numbri järgmises käsus:

$sed„LineNum s/FindWord/Asenda sõna/'Fail.txt

Siin peate asendama FindWordi sõnaga, mille soovite asendada, ja ReplaceWord asendatava sõnaga. Lisaks peate faili asendama ka selle faili nimega, kuhu soovite need asendused teha. Selle stsenaariumi korral olen asendanud FindWord sed ja ReplaceWord asendusega. Meie failinimi oli sed.txt. Samuti peate LineNumi asendama selle rea rea ​​numbriga, milles soovite asenduse teha. Selles näites soovisime sed asendada asendusega meie faili reas nr 2, nagu on näidatud järgmisel pildil:

Selle käsu edukas täitmine näitab teile muudatusi, mis on toimunud selle käsu terminalis käivitamise tõttu. Saate hõlpsasti kontrollida, kas nimetatud muudatused on toimunud ainult meie faili reas nr 2, mitte kogu tekstis.

Järeldus:

Kui tunnete vajadust asendada mõni sõna failis, peate kõigepealt kindlaks määrama oma konkreetse nõude, st kas soovite selle konkreetse sõna kogu failis asendada või asendada konkreetse sõna sõna või soovite selle sõna teatud reas asendada. Kui olete oma konkreetse stsenaariumi kindlaks teinud, saate seda konkreetset meetodit kasutada käesolevas artiklis käsitletud näidetest.