sed

sed ukaz za zamenjavo niza v datoteki

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

Opomba: Linux Mint 20 bomo uporabili za prikaz uporabe ukaza sed za zamenjavo niza v datoteki. Če želite, lahko uporabite tudi kateri koli drug okus Linuxa.

Uporaba 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 celo ustvarite datoteko Bash ali katero koli drugo datoteko po svoji izbiri. Drugič, datoteko bomo ustvarili v domačem imeniku, tako da nam med dostopom do te datoteke ne bo treba določiti zapletenih poti. Za ustvarjanje besedilne datoteke je treba izvesti naslednje korake:

Kliknite ikono upravitelja datotek v opravilni vrstici Linux Mint 20:

Zdaj ustvarite novo besedilno datoteko v imeniku Domov tako, da z desno miškino tipko kliknete kjer koli tam in nato izberete možnost Nov dokument v kaskadnem meniju in možnost Prazen dokument v podkaskadnem meniju. Ko je besedilna datoteka ustvarjena, ji dajte ustrezno ime. Za ta primer sem ga poimenoval sed.txt.

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

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

Po zagonu terminala v Linux Mint 20 lahko po vrsti preberete vse spodaj omenjene primere.

Uporaba ukaza sed za zamenjavo vseh pojavov dane besede:

Ukaz sed lahko uporabite za nadomestitev vseh pojavitev dane besede v besedilni datoteki. Sintaksa doseganja tega cilja je navedena spodaj:

$ sed 's / sed / FindWord / ReplaceWord /' datoteka.txt

Tu morate FindWord nadomestiti z besedo, ki jo želite zamenjati, in RewordWord z besedo, ki jo želite zamenjati. Poleg tega morate datoteko nadomestiti z imenom datoteke, v kateri želite te nadomestitve nadomestiti. V tem primeru sem FindWord zamenjal s sed, ReplaceWord pa z nadomestitvijo. Ime naše datoteke je bilo sed.txt. Prikazana je tudi na naslednji sliki:

Uspešna izvedba tega ukaza vam bo pokazala spremembe, ki so nastale zaradi izvajanja tega ukaza na vašem terminalu:

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

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

$ sed 's / FindWord / ReplaceWord / num' datoteka.txt

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

Uspešna izvedba tega ukaza vam bo pokazala spremembe, ki so nastale zaradi izvajanja tega ukaza na vašem terminalu:

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

Včasih želite dano besedo zamenjati samo v določeni vrstici in ne v celotnem dokumentu. Za to morate izrecno določiti to številko vrstice v naslednjem ukazu:

$ sed 'LineNum s / FindWord / ReplaceWord /' datoteka.txt

Tu morate FindWord nadomestiti z besedo, ki jo želite zamenjati, in RewordWord z besedo, ki jo želite zamenjati. Poleg tega morate datoteko nadomestiti z imenom datoteke, v kateri želite te nadomestitve nadomestiti. V tem primeru sem FindWord sed in ReplaceWord zamenjal z zamenjavo. Ime naše datoteke je bilo sed.txt. Prav tako morate LineNum nadomestiti s številko vrstice določene vrstice, v kateri želite zamenjati. V tem primeru smo želeli nadomestiti sed z nadomestiti v vrstici številka 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 vrstici številka 2 naše datoteke in ne v celotnem besedilu.

Zaključek:

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

Najboljši Linux Distros za igre na srečo v letu 2021
Operacijski sistem Linux je daleč od prvotnega, preprostega, strežniškega videza. Ta OS se je v zadnjih letih izjemno izboljšal in se je zdaj razvil v...
Kako zajeti in pretakati svojo igralno sejo v Linuxu
V preteklosti je bilo igranje iger le hobi, sčasoma pa je igralniška industrija zabeležila veliko rast glede tehnologije in števila igralcev. Občinstv...
Najboljše igre z ročnim sledenjem
Oculus Quest je pred kratkim predstavil odlično idejo ročnega sledenja brez krmilnikov. Z vedno večjim številom iger in dejavnosti, ki izvajajo podpor...