Sed
tähistab vooredaktorit. See on Linuxi käsureapõhine redaktor. Populaarne sed on mõeldud faili(de) redigeerimiseks Linuxis automatiseerimisskripti osana, kuna tavalised redaktorid nõuavad aktiivset kasutaja sisendit ega saa faile redigeerida väljaspool redaktori ekraane. Sed-i kasutatakse kõige sagedamini käsurealt otsimiseks ja asendamiseks.
Seda tüüpi tekstiredaktorit saab liigitada ka mitteinteraktiivsete tekstiredaktorite kategooriasse.
Vaatame mõnda levinumat võimalust failide redigeerimiseks Sed abil. Toome näitena järgmise faili:
$: cat test.txt Kiire pruun koer hüppas üle laisa kassi. Linuxi operatsioonisüsteem. Minu kodu lähedal asuvas Metsas on nii kass kui ka hundid.
Otsi ja asenda
Failist stringi otsimiseks ja teise stringiga asendamiseks käivitage:
sed -i "s/cat/fox/g" test.txt
Siin, -i
lipp annab sedile korralduse muudatused faili kirjutada. Ilma selle liputa sed
kuvab lihtsalt faili muudetud stringiga.
Jutumärkides on meil s/kass/rebane/g
. The s
on otsingu ja asendamise käsu jaoks sed
. Siis on meil string, mida otsida, mis on kass
. Seejärel string, millega see asendada, st rebane
. Lõpuks on meil valikuline g
, mis juhendab sed
et asendada kõik esinemised faili kõigil ridadel. Ilma g
, sed asendab ainult esmakordse esinemise kass
igal real.
Siin saab kasutada ka Regexit.
sed -i "s/f[a-z]*\./cat\./g"
Sisesta
Teksti sisestamiseks sobiva stringiga rea ette kasutage järgmist:
sed -i "/cat/i Start:" test.txt
siin, kass
on otsitav string ja Alusta:
on string, mis sisestatakse enne rida, kust otsitav string leitakse.
Samamoodi kasutage teksti lisamiseks rea taha:
sed -i "/fox/a End." test.txt
Kustuta
Alamstringi sisaldava rea kustutamiseks kasutage:
sed -i "/Linux/d" test.txt
Rea numbriga rea kustutamiseks, nt. esimene rida, kasutage:
sed -i '1d' test.txt
Mitme funktsiooni kombineerimine
Mitme funktsiooni kombineerimiseks, nt. otsi ja asenda, kustuta ühe käsuga, -e
lippu saab kasutada.
sed -i -e "s/rebane/kass/g" -e '2d' test.txt
? Tervist!