Kaip naudoti „Sed“ sistemoje „Linux“.

Sed reiškia srauto rengyklę. Tai komandų eilutės pagrindu sukurtas „Linux“ redaktorius. Populiarus sed naudojimas yra skirtas failo (-ų) redagavimui kaip automatizavimo scenarijaus Linux sistemoje, nes įprastiems redaktoriams reikia aktyvaus vartotojo įvesties ir jie negali redaguoti failų už redaktoriaus ekranų ribų. Sed dažniausiai naudojamas ieškant ir keičiant iš komandinės eilutės.

Šio tipo teksto rengyklės taip pat gali būti priskirtos neinteraktyvioms teksto rengyklėms.

Pažiūrėkime į kai kurias įprastas failų redagavimo naudojant Sed parinktis. Kaip pavyzdį paimsime šį failą:

$: cat test.txt Greitas rudas šuo peršoko per tingią katę. Linux operacinė sistema. Netoliese esančiame miške yra katė ir vilkai. 

Ieškoti ir pakeisti

Norėdami ieškoti eilutės faile ir pakeisti kita eilute, paleiskite:

sed -i "s/cat/fox/g" test.txt

Čia, -i vėliavėlė nurodo sed įrašyti failo pakeitimus. Be šios vėliavos sed tiesiog parodys failą su pakeista eilute.

Cbutėse mes turime s/katė/lapė/g. The s skirta paieškai ir keitimo komandai sed. Tada turime ieškoti eilutės, kuri yra katė. Tada eilutė, kurią reikia pakeisti, t.y. lapė. Galiausiai turime neprivalomą g, kuris nurodo sed pakeisti visus įvykius visose failo eilutėse. Be g, sed pakeis tik pirmą kartą pasitaikiusį katė kiekvienoje eilutėje.

Čia taip pat galima naudoti Regex.

sed -i "s/f[a-z]*\./cat\./g"

Įdėti

Norėdami įterpti tekstą prieš eilutę su suderinta eilute, naudokite:

sed -i "/cat/i Start:" test.txt

Čia katė yra ieškoma eilutė ir Pradžia: yra eilutė, kurią reikia įvesti prieš eilutę, kurioje randama ieškoma eilutė.

Panašiai, norėdami įterpti tekstą po eilutės, naudokite:

sed -i "/fox/a End." testas.txt

Ištrinti

Norėdami ištrinti eilutę, kurioje yra poeilutė, naudokite:

sed -i "/Linux/d" test.txt

Norėdami ištrinti eilutę su eilutės numeriu, pvz. pirmoje eilutėje naudokite:

sed -i '1d' test.txt

Kelių funkcijų derinimas

Norėdami sujungti kelias funkcijas, pvz. ieškoti ir pakeisti, ištrinti viena komanda, -e vėliava gali būti naudojama.

sed -i -e "s/fox/cat/g" -e '2d' test.txt

? Sveikinu!