sed Ukaz za zamenjavo niza v datoteki

Sed Command Replace String File



Kadar koli delamo s kakršnimi koli datotekami, je zelo pogosta praksa, da te datoteke spremenimo tako, da poiščemo in zamenjamo besede. Večina urejevalnikov besedil za izvedbo teh sprememb ponuja različne metode, ki temeljijo na grafičnem vmesniku. Vendar pa včasih potrebujete način, da poiščete in zamenjate besede v datoteki prek terminala. Zato vas bomo v tem članku vodili skozi način uporabe ukaza sed za zamenjavo niza v besedilni datoteki. Osvetlili bomo tudi različne scenarije, v katerih je mogoče uporabiti ta ukaz.

Opomba: Linux Mint 20 bomo uporabili za prikaz uporabe ukaza sed za zamenjavo niza v datoteki. Če želite, lahko uporabite tudi katero koli drugo različico Linuxa.







Uporaba ukaza Sed Command:

Zdaj vam bomo pokazali nekaj zelo zanimivih primerov za prikaz uporabe ukaza sed v Linuxu. Poglejmo, kako ta ukaz deluje v različnih scenarijih.



Ustvarjanje besedilne datoteke za predstavitev:

Za prikaz uporabe ukaza sed bi radi delali z besedilno datoteko. Lahko pa ustvarite celo datoteko Bash ali katero koli drugo datoteko po vaši izbiri. Drugič, datoteko bomo ustvarili v domačem imeniku, tako da nam med dostopom do te datoteke ni treba določiti zapletenih poti. Za ustvarjanje besedilne datoteke je treba izvesti naslednje korake:



Kliknite ikono Upravitelj datotek v opravilni vrstici Linux Mint 20:





Zdaj ustvarite novo besedilno datoteko v domačem imeniku tako, da z desno miškino tipko kliknete kjer koli tam, nato pa iz kaskadnega menija izberete možnost Nov dokument in možnost Izprazni dokument iz podkaskadnega menija. Ko je besedilna datoteka ustvarjena, ji dajte ustrezno ime. Za ta primer sem ga poimenoval kot sed.txt.



Dvokliknite to datoteko, da jo odprete, in vanj vnesite poljubno besedilo, kot je prikazano na spodnji sliki. Shranite to besedilno datoteko s pritiskom na Ctrl +S in jo nato zaprite.

Zdaj zaženite terminal v Linux Mint 20, kot je prikazano na naslednji sliki:

Po zagonu terminala v Linux Mint 20 si lahko enega za drugim ogledate vse spodaj navedene primere.

Z ukazom sed za zamenjavo vseh pojavnosti dane besede:

Z ukazom sed lahko zamenjate vse pojavitve dane besede v besedilni datoteki. Spodaj je navedena sintaksa doseganja tega cilja:

$sed‘S/sed/FindWord/Zamenjaj besedo/'File.txt

Tu morate FindWord zamenjati z besedo, ki jo želite zamenjati, in ReplaceWord z besedo, ki jo želite zamenjati. Poleg tega morate datoteko zamenjati tudi z imenom datoteke, kjer želite te zamenjave. V tem scenariju sem FindWord zamenjal s sed in ReplaceWord z nadomesti. Ime naše datoteke je bilo sed.txt. Prikazano je tudi na naslednji sliki:

Uspešna izvedba tega ukaza vam bo pokazala spremembe, do katerih je prišlo zaradi izvajanja tega ukaza na vašem terminalu:

Z uporabo ukaza sed za zamenjavo n -tega pojavljanja dane besede v vsaki vrstici:

Zgornji scenarij je bil najpreprostejši scenarij zamenjave, vendar včasih ne želite zamenjati vseh pojavitev besede, temveč želite zamenjati le prvi, drugi ali n -ti pojav te besede v vseh vrsticah. Če želite to narediti, lahko izvedete naslednji ukaz:

$sed‘S/FindWord/Zamenjaj besedo/num 'file.txt

Tu morate FindWord zamenjati z besedo, ki jo želite zamenjati, in ReplaceWord z besedo, ki jo želite zamenjati. Poleg tega morate datoteko zamenjati tudi z imenom datoteke, kjer želite te zamenjave. V tem scenariju sem zamenjal FindWord replace in ReplaceWord s sed. Ime naše datoteke je bilo sed.txt. Številka se nanaša tudi na pojav ali položaj besede, ki jo je treba zamenjati. V prikazanem primeru želim zamenjati prvi pojav zamenjave s sed v vsaki vrstici, kot je prikazano na spodnji sliki:

Uspešna izvedba tega ukaza vam bo pokazala spremembe, do katerih je prišlo zaradi izvajanja tega ukaza na vašem terminalu:

Uporaba ukaza sed za zamenjavo dane besede v določeni vrstici:

Včasih želite le zamenjati dano besedo v določeni vrstici in ne v celotnem dokumentu. Če želite to narediti, morate v naslednjem ukazu izrecno določiti to posebno številko vrstice:

$sed„LineNum s/FindWord/Zamenjaj besedo/'File.txt

Tu morate FindWord zamenjati z besedo, ki jo želite zamenjati, in ReplaceWord z besedo, ki jo želite zamenjati. Poleg tega morate datoteko zamenjati tudi z imenom datoteke, kjer želite te zamenjave. V tem scenariju sem FindWord sed in ReplaceWord zamenjal z zamenjavo. Ime naše datoteke je bilo sed.txt. Prav tako morate zamenjati LineNum s številko vrstice določene vrstice, v kateri želite zamenjati. V tem primeru smo želeli zamenjati sed z zamenjavo v vrstici 2 naše datoteke, kot je prikazano na naslednji sliki:

Uspešna izvedba tega ukaza vam bo pokazala spremembe, ki so nastale zaradi izvajanja tega ukaza na vašem terminalu. Z lahkoto lahko preverite, ali so se omenjene spremembe zgodile le v drugi vrstici naše datoteke in ne v celotnem besedilu.

Zaključek:

Kadar koli čutite potrebo po zamenjavi katere koli besede v datoteki, morate najprej ugotoviti svojo posebno zahtevo, tj. Ali želite to besedo zamenjati v celotni datoteki ali želite zamenjati določen pojav to določeno besedo ali pa jo želite zamenjati v določeni vrstici. Ko določite svoj poseben scenarij, lahko uporabite to posebno metodo iz primerov, obravnavanih v tem članku.