sed komanda pakeisti failo eilutę

Sed Command Replace String File



Kai dirbame su bet kokiais failais, labai įprasta tuos failus modifikuoti ieškant ir keičiant žodžius. Dauguma teksto redaktorių pateikia skirtingus GUI metodus šiems pakeitimams atlikti. Tačiau kartais jums reikia būdo rasti ir pakeisti žodžius faile per terminalą. Todėl šiame straipsnyje apžvelgsime metodą, kaip naudoti komandą sed, norint pakeisti teksto failo eilutę. Mes taip pat parodysime įvairius scenarijus, kuriais galima naudoti šią komandą.

Pastaba: Mes naudosime „Linux Mint 20“, norėdami parodyti, kaip komanda „sed“ pakeičia failo eilutę. Jei norite, taip pat galite naudoti bet kokį kitą „Linux“ skonį.







SED komandos naudojimas:

Dabar parodysime keletą labai įdomių pavyzdžių, kaip pavaizduoti „sed“ komandos naudojimą „Linux“. Pažiūrėkime, kaip ši komanda veikia skirtingais atvejais.



Demonstracinio teksto failo kūrimas:

Norėdami parodyti „sed“ komandos naudojimą, norėtume dirbti su teksto failu. Tačiau netgi galite sukurti „Bash“ failą ar bet kurį kitą pasirinktą failą. Antra, mes sukursime failą namų kataloge, kad mums nereikėtų nurodyti jokių sudėtingų kelių, kai prieiname prie šio failo. Norėdami sukurti teksto failą, turite atlikti šiuos veiksmus:



Spustelėkite failų tvarkyklės piktogramą, esančią „Linux Mint 20“ užduočių juostoje:





Dabar sukurkite naują teksto failą namų kataloge, dešiniuoju pelės klavišu spustelėdami bet kurią ten esančią vietą, tada kaskadinio meniu pasirinkdami parinktį Naujas dokumentas ir papildomo kaskadinio meniu parinktį Tuščias dokumentas. Sukūrę teksto failą, suteikite jam tinkamą pavadinimą. Šiame konkrečiame pavyzdyje aš pavadinau jį kaip sed.txt.



Dukart spustelėkite šį failą, kad jį atidarytumėte, ir įveskite bet kokį atsitiktinį tekstą, kaip parodyta paveikslėlyje žemiau. Išsaugokite šį teksto failą paspausdami Ctrl +S ir uždarykite.

Dabar paleiskite terminalą „Linux Mint 20“, kaip parodyta šiame paveikslėlyje:

Paleidę terminalą „Linux Mint 20“, galite peržiūrėti visus toliau nurodytus pavyzdžius po vieną.

Komandos sed naudojimas visų duoto žodžio įvykių pakeitimui:

Galite naudoti komandą sed, kad pakeistumėte visus tam tikro žodžio įvykius teksto faile. Šio tikslo pasiekimo sintaksė nurodyta žemiau:

$sed‘S/sed/FindWord/Pakeisti žodį/“Failas.txt

Čia „FindWord“ turite pakeisti žodžiu, kurį norite pakeisti, ir „ReplaceWord“ pakeisti žodžiu. Be to, failą taip pat turite pakeisti failo, kuriame norite atlikti šiuos pakeitimus, pavadinimu. Pagal šį scenarijų „FindWord“ pakeičiau „sed“ ir „ReplaceWord“ pakeičiau. Mūsų failo pavadinimas buvo sed.txt. Tai taip pat parodyta šiame paveikslėlyje:

Sėkmingas šios komandos vykdymas parodys pakeitimus, kurie įvyko dėl šios komandos vykdymo jūsų terminale:

Naudojant komandą sed, norint pakeisti n -ąjį duoto žodžio įvykį kiekvienoje eilutėje:

Anksčiau pateiktas scenarijus buvo paprasčiausias pakeitimo scenarijus, tačiau kartais nenorite pakeisti visų žodžio pasikartojimų, o visose eilutėse norite pakeisti tik pirmąjį, antrąjį ar n. Norėdami tai padaryti, galite vykdyti šią komandą:

$sed‘S/FindWord/Pakeisti žodį/num 'file.txt

Čia „FindWord“ turite pakeisti žodžiu, kurį norite pakeisti, ir „ReplaceWord“ pakeisti žodžiu. Be to, failą taip pat turite pakeisti failo, kuriame norite atlikti šiuos pakeitimus, pavadinimu. Šiuo atveju aš pakeičiau „FindWord“ ir „ReplaceWord“ į „sed“. Mūsų failo pavadinimas buvo sed.txt. Taip pat num reiškia žodžio, kurį reikia pakeisti, buvimą ar vietą. Parodytame pavyzdyje noriu pakeisti pirmą kartą pakeitimą sed kiekvienoje eilutėje, kaip parodyta paveikslėlyje žemiau:

Sėkmingas šios komandos vykdymas parodys pakeitimus, kurie įvyko dėl šios komandos vykdymo jūsų terminale:

Komandos sed naudojimas norint pakeisti tam tikrą žodį konkrečioje eilutėje:

Kartais norite pakeisti tam tikrą žodį tik konkrečioje eilutėje, o ne visame dokumente. Norėdami tai padaryti, turite aiškiai nurodyti tą eilutės numerį šioje komandoje:

$sed„LineNum s/FindWord/Pakeisti žodį/“Failas.txt

Čia „FindWord“ turite pakeisti žodžiu, kurį norite pakeisti, ir „ReplaceWord“ pakeisti žodžiu. Be to, failą taip pat turite pakeisti failo, kuriame norite atlikti šiuos pakeitimus, pavadinimu. Šiuo atveju aš pakeičiau „FindWord sed“ ir „ReplaceWord“ pakeitimu. Mūsų failo pavadinimas buvo sed.txt. Be to, „LineNum“ turite pakeisti tos eilutės, kurioje norite pakeisti, eilutės numeriu. Šiame pavyzdyje norėjome pakeisti sed, pakeisdami failo 2 eilutės numerį, kaip parodyta šiame paveikslėlyje:

Sėkmingas šios komandos vykdymas parodys pakeitimus, kurie įvyko dėl šios komandos vykdymo jūsų terminale. Galite lengvai patikrinti, ar minėti pakeitimai įvyko tik mūsų failo 2 eilutėje, o ne visame tekste.

Išvada:

Kai manote, kad reikia pakeisti bet kurį failo žodį, pirmiausia turite nustatyti savo konkretų reikalavimą, ty ar norite pakeisti tą konkretų žodį visame faile, ar norite pakeisti tam tikrą tą žodį arba norite jį pakeisti konkrečioje eilutėje. Nustačius konkretų scenarijų, galite naudoti šį metodą iš šiame straipsnyje aptartų pavyzdžių.