Ce face sed
Comanda sed citește textul linie cu linie, aplică regulile definite (înlocuiri de expresii, ștergeri de rânduri, inserări) și trimite rezultatul direct către ieșirea standard.
Cea mai cunoscută utilizare a comenzii este comanda de substituție s/căutat/înlocuitor/g. Cu opțiunea -i (in-place), modificările sunt salvate direct în fișierul original fără a fi nevoie de un fișier intermediar.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-i, --in-place |
Modifică direct fișierul pe disc în loc de a afișa rezultatul în consolă. |
-e INSTRUCȚIUNE |
Permite specificarea mai multor comenzi sed într-un singur apel. |
-n, --quiet |
Nu afișează automat fiecare linie; se folosește de obicei împreună cu comanda de afișare p. |
s/vechi/nou/g |
Substituie fiecare apariție a textului ‘vechi’ cu ‘nou’ (steagul g înseamnă global pe toată linia). |
Exemple
Exemplul 1: Înlocuirea unui cuvânt pe fiecare rând
Schimbăm protocolul HTTP cu HTTPS pe toate liniile.
echo "Site: http://exemplu.ro si http://dexblog.ro" | sed 's/http:/https:/g'
Rezultat
Site: https://exemplu.ro si https://dexblog.ro
Exemplul 2: Ștergerea liniilor goale
Comanda /^$/d șterge toate liniile care nu conțin niciun caracter.
cat << 'EOF' > date.txt
Linia 1
Linia 2
EOF
sed '/^$/d' date.txt
Rezultat
Linia 1
Linia 2
Greșeli frecvente
- Uitarea steagului
gla sfârșitul comenzii de substituție (fărăg, se înlocuiește doar prima apariție de pe fiecare linie). - Diferențele de sintaxă pentru
-iîntre GNU sed (pe Linux:sed -i) și BSD sed (pe macOS:sed -i '').
Comenzi înrudite
awk: Limbaj de procesare a textului structurat pe coloane, ideal pentru rapoarte și extragere de date.grep: Caută linii care se potrivesc cu un tipar sau o expresie regulată în fișiere.tr: Translatează, șterge sau comprimă caractere specifice din fluxul de intrare standard.cut: Decupează secțiuni, coloane sau intervale de caractere din fiecare linie de text.