Sužinokite „Linux“

Stygų keitimas „Bash“

Stygų keitimas „Bash“

„Bash“ yra su „UNIX“ suderinamas „shell“ komandų procesas, kurio pagrindinė užduotis yra manipuliuoti eilutėmis, atliekamomis apvalkalo aplinkoje. Programuotojai kartais raginami dirbti su skirtingomis rinkmenomis. Jie gali pridėti, ištrinti ir pakeisti dalis ar visą failą, kad tiktų jų darbui. Tai reikalauja žinių apie eilutės pakeitimą bash. Duomenų saugojimas gali būti laikinas arba nuolatinis, atsižvelgiant į duomenų pobūdį. Failo eilutė yra būtina pakeičiant failo turinį.

Stygų keitimas „Bash“

sed yra gyvybiškai svarbus ir yra naudingas norint pakeisti failo eilutes „bash“ scenarijais. Stygų redaktorius gali būti naudojamas įvairiai, norint pakeisti failo turinį „bash“. Pakaitinis, bet garso eilutės redaktorius yra „awk“, kurį galima paleisti pakeičiant eilutės reikšmę iš failo naudojant „bash“. Šiame straipsnyje su pavyzdžiais bus parodyta, kaip failo turinį galima pakeisti bash. Atkreipkite dėmesį, kad žinios pagal regex modelius taip pat gali būti labai vertingos pakeičiant eilutę „bash“.

„Bash“ stygų manipuliavimas

Atliekant nedidelius ar paprastus pakeitimus, sed nereikia. Bashas gali atlikti manipuliaciją.

Pavyzdžiui:
Keičiant fosslinux.gif su .mp4, sed nereikia.
Norėdami atlikti procesą naudodami „bash“, naudokite toliau užkoduotą tekstą:

# / bin / bash failo_vardas = "fosslinux.gif "new_extension =" mp4 "# Pakeiskite .gif su .mp4 sukurtas_failo_vardas = $ failo_vardas /.gif /.$ new_extension echo generuojamas_failo_vardas

Stygų keitimas naudojant sed

sed galima vadinti srauto redaktoriumi. „Sed“ failuose gali pakeisti eilutę. Pažvelkime į failo, vadinamo „singleboardbytes“, pavyzdį.txt, kuriame yra ši informacija:
„Foss Linux“ yra puiki mokymosi svetainė bet kuriam „Linux“ vartotojui. Peržiūrėkite savo svetainėje „Foss Linux“ paskelbtus straipsnius.

Dabar iš mūsų bylos turime pakeisti žodį „svetainėje" su "Interneto svetainė“Ir pervardykite failą į fosslinux.txt.

Suprasti sed sintaksę

sed -i 's / search_string / pakeisti_string /' failo vardas sed - yra komanda, naudojama vykdant minėtą sintaksę '-i'- naudojamas modifikuojant pirminio failo turinį su pakaitine eilutės pagalba, kai byloje yra paieškos reikšmė. "s"- tai pakaitinė komanda"search_string"- tai reiškia eilutės vertę, kurios reikia ieškoti pakeičiant pradiniame faile"pakeisti_stygą'- tai reiškia eilutės vertę, kuri naudojama ieškomai vertei pakeisti. Eilutė turi atitikti eilutę, kurią randa komanda „search_string“. "failo pavadinimas"- tai yra failo pavadinimas, pagal kurį bus taikomas pakeitimas.

Savo terminale vykdykite šią komandą:

sed 's / site / website / g' singleboardbytes.txt> fosslinux.txt

Stygų pakeitimas naudojant sed

Pastaba: aukščiau pateiktą komandą taip pat galite įvykdyti įdėdami ją kaip „bash“ scenarijų.
Pakeisti naudojant -i komandą

Paleidus komandą, kitas žingsnis yra pakeisti naudojant -i komandą. -i yra „vietoje“ reprezentacija, tai reiškia, kad failas yra tik pakeistas, o papildomų failų nėra. Naudodamiesi aukščiau pateiktu pavyzdžiu, vykdykite šią komandą:

sed -i 's / site / website / g' singleboardbytes.txt

Pakeitimas naudojant komandą -i

Žemiau esančiame paveikslėlyje galite pamatyti šauktuką, kuriame sakoma: Failas „/ home / tuts / singleboardbytes“.diske pakeistas txt.“Tai rodo, kad pakeitimai buvo sėkmingai atlikti.

Vienkartinių baitų pakeitimai.txt

Žemiau pateiktas paveikslėlis yra failas, kuriame yra pakeitimai, atlikti ankstesniame žingsnyje, tiek failo pavadinime (pavieniai lentos baitai).txt į fosslinux.txt) ir žodis svetainėje buvo pakeistas į Interneto svetainė.

Galutinis pakeitimas paleidus sed komandą

Kintamojo naudojimas kaip paieškos vertės ir pakaitalai

Šiek tiek interpoliuojant, kintamieji gali būti naudojami eilutėms pakeisti. Pirmasis sed argumentas šiuo atveju turi naudoti dvigubas kabutes, o ne atskiras kabutes. Pavyzdžiui, jūsų kodas bus panašus į žemiau pateiktą:

tuts () vietinė paieška = $ 1 vietinė pakaitalas = $ 2 # Atkreipkite dėmesį į dvigubas kabutes sed -i "s / $ search / $ pakeisti / g" vienos lentos baitai.txt

Kintamojo naudojimas kaip paieškos vertės ir pakaitalai

sed turi du skonius, būtent: „FreeBSD“ ir „Linux“ sed. „Linux“ distros naudoja „Linux sed“, o „OS X“ vartotojai - „FreeBSD sed“. Šie skoniai yra gana skirtingi, todėl negalima perkelti komandų iš vieno sed skonio į kitą.

Pavyzdžiui, keičiant failo turinį naudojant FreeBSD, atsarginę kopiją reikia atlikti naudojant .bak pratęsimas. Arba galite inicijuoti atsarginę kopiją naudodami tuščias kabučių poras iškart po žymėjimo -i, kaip parodyta žemiau esančioje bash sintaksėje:

tuts () vietinė paieška = $ 1 vietinė pakaitalas = $ 2 sed -i "" "s / $ search / $ pakeisti / g" pavieniai baitai.txt

Jei atsarginė kopija nebus padaryta naudojant „FreeBSD“, kaip parodyta aukščiau esančiame sintaksės kode, pateksite į tokią klaidą, kaip parodyta žemiau:

sed: 1: "/ Users / user / path / tuts…": papildomi simboliai komandos h pabaigoje

Kaip pakeisti failą ir suderinti skaitmenų modelį naudojant komandą sed

Jei sėkmingai paleisite scenarijų, bus atlikta viso faile esančio skaitmeninio turinio paieška. Tada turinys bus pakeistas pridedant $ prieš skaičius.

#!/ bin / bash # Patikrinkite, ar yra komandinės eilutės argumento reikšmė, ar ne, jei [$ 1 != ""]; tada # ieškokite visose eilutėse, kuriose yra skaitmenų, ir pridėkite $ sed -i 's / \ b [0-9] \ 5 \ \ b / $ & / g' $ 1 fi

Stygos pakeitimas naudojant komandą awk

Šiuo atveju failo turiniui pakeisti naudosime komandą awk, o ne komandą sed. Šių komandų skirtumas yra tas, kad komanda sed tiesiogiai atnaujina originalų failą, o tai nėra atvejis su komanda awk.

#!/ bin / bash # Patikrinkite, ar yra komandinės eilutės argumento reikšmė, ar ne, jei [$ 1 != ""]; tada # ieškoti visose eilutėse pagal datą awk 'sub ("2020.06.06", "12.06.2020") 1' $ 1> temp.txt && mv temp.txt $ 1 fi

Išvada

Pirmiau pateikti pavyzdžiai yra gyvybiškai svarbūs jūsų pažangai mokantis pakeisti eilutę „Bash“. Todėl, kad būtumėte gerai, turėsite reguliariai praktikuotis. Straipsnių paieška ir pakeitimas faile gali atrodyti sudėtinga, tačiau teisingai laikydamiesi mūsų gairių, ją rasite daug lengviau.

Atkreiptinas dėmesys į tai, kad komandų vykdymas kartais gali atrodyti lengviau valdomas, tačiau turėtumėte būti atsargūs, kad nesugadintumėte. Kai įvesite neteisingas komandas, sugadinsite kompiuterį ir sukelsite daugiau problemų, pvz., Duomenų praradimas. Taigi, norėdami būti saugūs, visada nukopijuokite ir įklijuokite kodą tokį, koks jis yra, į terminalą. Tai padės išvengti rašybos klaidų, kurios gali sugadinti jūsų mašiną. Tikimės, kad šis straipsnis padėjo jums sužinoti, kaip pakeisti „bash“ eilutę naudojant šį straipsnį.

Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...
Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...
Kaip naudoti „GameConqueror Cheat Engine“ sistemoje „Linux“
Straipsnyje pateikiamas „GameConqueror“ apgaulės variklio naudojimo „Linux“ vadove. Daugelis žaidėjų, žaidžiančių sistemoje „Windows“, dažnai naudoja ...