Naučite Linux

Zamjena niza u Bashu

Zamjena niza u Bashu

Bash je naredbeni postupak kompatibilan s UNIX-om, čija je glavna zadaća manipulacija žicama izvedenim u okruženju ljuske. Programeri su ponekad pozvani raditi na različitim datotekama. Oni mogu dodavati, brisati i zamjenjivati ​​dijelove ili cijelu datoteku kako bi odgovarali njihovom radu. To zahtijeva znanje zamjene niza u bash. Pohrana podataka može biti privremena ili trajna, ovisno o prirodi podataka. Niz datoteke važan je prilikom zamjene sadržaja datoteke.

Zamjena niza u Bashu

sed je od vitalne važnosti i dobro vam pomaže u zamjeni nizova u datoteci s bash skriptama. Uređivač nizova može se koristiti na različite načine za zamjenu sadržaja datoteke u bashu. Alternativni, ali zvučni uređivač nizova je awk koji se može pokrenuti prilikom zamjene vrijednosti niza iz datoteke pomoću basha. Ovaj će članak pomoću primjera pokazati kako se sadržaj datoteke može zamijeniti u bash. Imajte na umu da znanje o uzorcima regularnih izraza također može biti od velike vrijednosti prilikom zamjene niza u bashu.

Manipulacija bash nizovima

Pri manjim ili jednostavnim zamjenama sed nije potreban. Bash može manipulirati.

Na primjer:
Prilikom zamjene fosslinuxa.gif sa .mp4, sed nije potreban.
Da biste izvršili postupak pomoću basha, upotrijebite kodirani tekst u nastavku:

# / bin / bash file_name = "fosslinux.gif "new_extention =" mp4 "# Zamijeni .gif sa .mp4 generirano_ime_datoteke = $ ime_datoteke /.gif /.$ new_extension echo generated_file_name

Zamjena Stringa pomoću sed

sed se može nazivati ​​uređivačem toka. Sed može zamijeniti niz u datotekama. Pogledajmo primjer datoteke koja se naziva singleboardbytes.txt koji sadrži sljedeće podatke:
Foss Linux izvrsno je mjesto za učenje za svakog korisnika Linuxa. Pogledajte članke koje je Foss Linux objavio na njihovoj web stranici.

Sada iz naše datoteke moramo zamijeniti riječ "web mjesto"Sa"web stranica”I preimenujte datoteku u fosslinux.txt.

Razumijevanje sed sintakse

sed -i 's / search_string / replace_string /' naziv datoteke sed - je naredba koja se koristi u izvršavanju gornje sintakse '-ja'- koristi se za izmjenu sadržaja u izvornoj datoteci s pomoćnim pomoćnim nizom kad god vrijednost datoteke postoji u datoteci. 's'- ovo je zamjenska naredba'string_ pretraživanja'- ovo predstavlja vrijednost niza koja se traži za zamjenu u izvornoj datoteci'replace_string'- ovo predstavlja vrijednost niza koja se koristi za zamjenu tražene vrijednosti. Niz bi trebao odgovarati nizu koji je pronađena naredbom 'search_string'. 'naziv datoteke'- ovo je naziv datoteke kojom će se primijeniti zamjena.

Izvršite sljedeću naredbu u svom terminalu:

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

Zamjena niza pomoću sed

Napomena: gornju naredbu možete izvršiti i stavljanjem kao bash skripte.
Zamjena pomoću -ja naredba

Nakon pokretanja naredbe, sljedeći je korak zamjena pomoću -ja naredba. -ja je prikaz za "na mjestu", što znači da je datoteka samo zamijenjena i da nema stvaranja dodatnih datoteka. Koristeći naš gornji primjer, pokrenite sljedeću naredbu:

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

Zamjena pomoću naredbe -i

Na donjoj slici možete vidjeti uskličnik koji kaže: Datoteka „/ home / tuts / singleboardbytes.txt promijenjen na disku.”To pokazuje da su promjene uspješno izvršene.

Promjene na jednobajtnim bajtovima.txt

Donja slika je datoteka koja sadrži promjene izvršene u prethodnom koraku, kako u nazivu datoteke (jednobojni.txt na fosslinux.txt) i riječ web mjesto je promijenjen u web stranica.

Konačna promjena nakon pokretanja naredbe sed

Korištenje varijable kao vrijednosti pretraživanja i zamjena

Uz malo interpolacije, varijable se mogu koristiti za zamjenu niza. Prvi sed argument, u ovom slučaju, mora koristiti dvostruke navodnike umjesto pojedinačnih navodnika. Na primjer, vaš će kôd biti sličan onome u nastavku:

tuts () lokalno pretraživanje = 1 $ lokalna zamjena = 2 $ # Obratite pažnju na dvostruke navodnike sed -i "s / $ search / $ replace / g" singleboardbytes.txt

Korištenje varijable kao vrijednosti pretraživanja i zamjena

sed ima dva okusa, i to: FreeBSD i Linux sed. Linux distribucije koriste Linux sed dok korisnici OS X koriste FreeBSD sed. Ti su okusi prilično različiti i stoga se ne mogu prenijeti naredbe s jednog sednog okusa na drugi.

Na primjer, dok zamjenjujete sadržaj datoteke pomoću FreeBSD-a, treba napraviti sigurnosnu kopiju pomoću .produžetak bak. Ili možete pokrenuti sigurnosnu kopiju pomoću praznih parova navodnika odmah nakon oznake -i, kao što je prikazano u bash sintaksi ispod:

tuts () lokalno pretraživanje = 1 $ lokalna zamjena = 2 $ sed -i "" "s / $ search / $ replace / g" singleboardbytes.txt

Ako se sigurnosna kopija ne napravi tijekom korištenja FreeBSD-a kako je prikazano u gornjem sintaksnom kodu, naletjet ćete na pogrešku poput one prikazane dolje:

sed: 1: "/ Users / user / path / tuts ...": dodatni znakovi na kraju naredbe h

Kako zamijeniti datoteku i uskladiti uzorak znamenki pomoću naredbe sed

Ako uspješno pokrenete skriptu, izvršit će se pretraživanje svih numeričkih sadržaja prisutnih u datoteci. Tada će se sadržaj zamijeniti dodavanjem $ ispred brojeva.

#!/ bin / bash # Provjerite postoji li vrijednost argumenta naredbenog retka ako [$ 1 != ""]; zatim # Pretražite sve nizove koji sadrže znamenke i dodajte $ sed -i 's / \ b [0-9] \ 5 \ \ b / $ & / g' $ 1 fi

Zamjena niza pomoću naredbe awk

U ovom slučaju koristit ćemo naredbu awk umjesto naredbe sed da zamijenimo sadržaj datoteke. Razlika među ovim naredbama je u tome što naredba sed izravno ažurira izvornu datoteku, što nije slučaj s naredbom awk.

#!/ bin / bash # Provjerite postoji li vrijednost argumenta naredbenog retka ako [$ 1 != ""]; then # Pretražite sve nizove na temelju datuma awk 'sub ("06/06/2020", "12/06/2020") 1' $ 1> temp.txt && mv temp.txt $ 1 fi

Zaključak

Gornji primjeri su vitalni za vaš napredak u učenju kako zamijeniti niz u Bashu. Stoga, da biste bili dobri u tome, morat ćete redovito vježbati. Pretraživanje i zamjena niza u datoteci može se činiti složenim, ali bit će vam puno jednostavnije ako pravilno slijedite naše smjernice.

Treba napomenuti da se izvršavanje naredbi ponekad može učiniti upravljivijim, ali pripazite da ne napravite pustoš od sed. Kada unesete pogrešne naredbe, pokvarit ćete računalo, što će vam stvoriti više problema poput gubitka podataka. Stoga, da biste bili sigurni, uvijek kopirajte i zalijepite kod kakav je na vaš terminal. To će spriječiti pravopisne pogreške koje bi mogle pokvariti vaš stroj. Nadamo se da vam je ovaj članak pomogao da naučite kako zamijeniti niz u bashu pomoću ovog članka.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...
Microsoft Sculpt Touch bežični miš pregled
Nedavno sam čitao o Microsoft Sculpt Touch bežični miš i odlučio ga kupiti. Nakon što sam ga neko vrijeme koristio, odlučio sam s njim podijeliti svoj...