Kako koristiti Sed u Linuxu

Sed označava stream editor. To je uređivač baziran na naredbenom retku za Linux. Popularna upotreba sed-a je za uređivanje datoteka(a) kao dijela skripte za automatizaciju u Linuxu, kao i uobičajeni uređivači zahtijevaju aktivan korisnički unos i ne mogu uređivati ​​datoteke izvan ekrana uređivača. Sed se najčešće koristi za pronalaženje i zamjenu iz naredbenog retka.

Ova vrsta uređivača teksta također se može kategorizirati kao neinteraktivni uređivač teksta.

Pogledajmo neke uobičajene opcije za uređivanje datoteka pomoću Sed-a. Uzet ćemo sljedeću datoteku kao primjer:

$: cat test.txt Brzi smeđi pas preskočio je lijenu mačku. Linux operativni sustav. U šumi u blizini mog doma ima i mačku kao i vukove. 

Traži i zamijeni

Da biste potražili niz u datoteci i zamijenili ga drugim nizom, pokrenite:

sed -i "s/mačka/lisica/g" test.txt

Evo, -i flag nalaže sed-u da upiše promjene u datoteku. Bez ove zastave, sed samo će prikazati datoteku s promijenjenim nizom.

U navodnicima imamo s/mačka/lisica/g. The s je za naredbu pretraživanja i zamjene sed. Zatim imamo niz koji treba pretraživati, a to je mačka. Zatim niz kojim ga treba zamijeniti, tj. lisica. Konačno, imamo opciju g, koji upućuje sed za zamjenu svih pojavljivanja u svim recima datoteke. Bez toga g, sed će zamijeniti samo prvo pojavljivanje mačka na svakoj liniji.

Ovdje se također može koristiti Regex.

sed -i "s/f[a-z]*\./mačka\./g"

Umetnuti

Da biste umetnuli tekst ispred retka s podudarnim nizom, koristite:

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

Ovdje, mačka je traženi niz i Početak: je niz za unos prije retka u kojem se nalazi traženi niz.

Slično, za umetanje teksta iza retka koristite:

sed -i "/lisica/a Kraj." test.txt

Izbrisati

Da biste izbrisali redak koji sadrži podniz, koristite:

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

Za brisanje reda s brojem retka, npr. prvi red, koristite:

sed -i '1d' test.txt

Kombiniranje više funkcija

Za kombiniranje više funkcija, npr. pretraži i zamijeni, izbriši, u jednoj naredbi, -e može se koristiti zastava.

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

? Živjeli!