Ukaz sed (Stream EDitor) je eno najstarejših in najmočnejših orodij za obdelavo besedila v ukazni vrstici. Besedilo obdeluje tokovno — prebere eno vrstico, jo spremeni po ukazih in rezultat izpiše. V tem priročniku si ogledamo najpomembnejše ukaze s praktičnimi primeri.
sed 's/staro/novo/g' datoteka.txt
Kaj je sed
Deluje kot filter med vhodom in izhodom: bere vrstico za vrstico, izvede nad njo ukaze in izpiše rezultat. Izvirna datoteka ostane nespremenjena, razen če uporabimo zastavico -i.
Zamenjava besedila
Osnovni ukaz je s, ki zamenjuje besedilo po vzorcu. Privzeto zamenja samo prvo pojavitev v vrstici, z zastavico g pa vse pojavitve.
echo "pozdravljen svet" | sed 's/pozdravljen/zdravo/' # izpis: zdravo svet sed 's/staro/novo/g' datoteka.txt # zamenja vse pojavitve
Brisanje in vstavljanje vrstic
Z ukazom d brišemo vrstice, z i vstavimo vrstico pred določeno, z a pa za njo.
sed '3d' datoteka.txt # zbriše 3. vrstico sed '/#/d' datoteka.txt # zbriše vrstice z znakom # sed '5i\Nova vrstica' datoteka.txt # vstavi pred 5. vrstico
Izpisi določenih vrstic
Kombinacija zastavic -n in ukaza p izpiše samo tiste vrstice, ki jih potrebujemo.
sed -n '10,20p' datoteka.txt # izpiše vrstice 10 do 20
Sprememba datoteke na mestu
Z zastavico -i sed spremeni datoteko neposredno. Zelo priporočljivo je ustvariti varnostno kopijo z dodatkom končnice.
sed -i.bak 's/staro/novo/g' datoteka.txt # ustvari varnostno kopijo datoteka.txt.bak