Comanda sed (Stream Editor) din Linux este un instrument puternic utilizat pentru prelucrarea textului și modificarea fișierelor. Aceasta permite utilizatorilor să caute, să înlocuiască, să introducă și să șteargă eficient text în fișiere, ceea ce o face o comandă vitală pentru automatizare și scripting. În acest ghid, vom explora modul de utilizare a comenzii sed pentru a actualiza fișiere în Linux cu ajutorul unor exemple practice.
Comanda sed este utilizată pe scară largă pentru:
Înlocuirea textului – Înlocuiți cu ușurință cuvinte, fraze sau modele în fișiere.
Procesarea pe loturi – Modificarea mai multor fișiere simultan utilizând scripturi.
Eficiență – Procesează rapid fișiere mari fără a le deschide.
Editare în linie – Modificarea fișierelor direct din linia de comandă.
Automatizare – Utilizată în scripturi pentru a gestiona modificările repetitive ale textului.
Sintaxa generală a comenzii sed este:
sed [OPTIONS] 's/old-text/new-text/g' filename
Unde:
Pentru a înlocui un anumit cuvânt într-un fișier, utilizați:
sed 's/Linux/Ubuntu/g' file.txt
Aceasta înlocuiește prima apariție a cuvântului “Linux” cu “Ubuntu” în fiecare linie a fișierului.txt.
Pentru a înlocui toate aparițiile unui cuvânt la nivel global într-un fișier:
sed 's/Linux/Ubuntu/g' file.txt
Indicatorul g asigură înlocuirea fiecărei apariții dintr-un rând.
Pentru a face modificări direct în fișier fără a afișa rezultatul:
sed -i 's/Linux/Ubuntu/g' file.txt
Opțiunea -i permite editarea in-place, ceea ce înseamnă că fișierul original este modificat fără a fi necesară salvarea unei versiuni separate.
Pentru a modifica numai anumite linii dintr-un fișier, specificați numărul liniei:
sed '3s/Linux/Ubuntu/' file.txt
Această comandă înlocuiește “Linux” cu “Ubuntu” numai pe linia 3.
Pentru a șterge toate liniile care conțin un anumit cuvânt, utilizați:
sed '/unwanted-text/d' file.txt
Aceasta elimină toate liniile care conțin “text nedorit”.
Pentru a elimina o anumită linie, utilizați:
sed '5d' file.txt
Aceasta șterge linia 5 din fișierul.txt.
Pentru a adăuga o linie înainte de un anumit număr de linie:
sed '3i\This is a new line' file.txt
Aceasta inserează “Aceasta este o linie nouă” înainte de linia 3.
Pentru a insera o linie după un anumit număr de linie:
sed '3a\This is an appended line' file.txt
Aceasta adaugă “Aceasta este o linie adăugată” după linia 3.
Pentru a înlocui text în mai multe fișiere simultan:
sed -i 's/Linux/Ubuntu/g' *.txt
Această comandă modifică toate fișierele .txt din director, înlocuind “Linux” cu “Ubuntu”.
Pentru a efectua mai multe modificări simultan:
sed -i -e 's/Linux/Ubuntu/g' -e 's/Server/Cloud/g' file.txt
Aceasta înlocuiește “Linux” cu “Ubuntu” și “Server” cu “Cloud” în file.txt.
Pentru a înlocui numere într-un fișier:
sed 's/[0-9]/#/g' file.txt
Aceasta înlocuiește toate cifrele cu #.
Pentru a extrage și afișa liniile de la 5 la 10:
sed -n '5,10p' file.txt
Opțiunea -n împiedică imprimarea întregului fișier, afișând doar liniile 5-10.
Comanda sed este un instrument versatil și eficient pentru actualizarea fișierelor în Linux. Fie că trebuie să înlocuiți text, să ștergeți linii sau să introduceți conținut, sed poate automatiza și simplifica aceste sarcini. Prin stăpânirea comenzii sed, vă puteți îmbunătăți fluxul de lucru și crește productivitatea în administrarea Linux și în scripting.