Sed

7
Noțiuni fundamentale. Un filtru este un program care modifică sau transformă intrarea sa. De regulă, filtrul citeşte intrarea standard şi scrie la ieşirea standard, fapt pentru care mai multe filtre pot fi conectate printr-un pipe. Sed este o comandă utilizată pentru transformarea secvențelor de text. Comanda citește fișierele de intrare linie cu linie, apoi modifică fiecare linie corespunzător regulilor specificate într- un limbaj simplu, și afișează linia. Inițial, programul a fost creat ca un utilitar UNIX de către Lee E. McMahon la Bell Labs între 1973 și 1974 dar acum este disponibil pe aproape orice sistem de operare care suporta o linie de comandă. Istoric Sed este una din primele comenzi UNIX pentru prelucrat text. A evoluat din comanda grep și este folosit pe larg împreună cu AWK pentru prelucrări de text din linia de comandă sau prin intermediul programelor shell. Sed și AWK sunt deseori prezentați ca precursorii limbajului Perl, sintaxa s / / / prezentată mai jos a fost preluată în Perl fiind introdusă original în editorul ed. Limbajul sed nu are variabile, iar structurile de control sunt primitive. Totuși, limbajul este considerat Turing-complete. Varianta GNU a limbajului sed adaugă o serie nouă de elemente de limbaj. Cea mai bine cunoscută este modificarea pe loc a fișierelor text folosind rezultatul rulării programului. Această facilitate a fost mai târziu preluată și de versiunea sed din BSD.

description

Sed commands Linux

Transcript of Sed

Page 1: Sed

Noțiuni fundamentale.

Un filtru este un program care modifică sau transformă intrarea sa. De regulă, filtrul citeşte intrarea standard şi scrie la ieşirea standard, fapt pentru care mai multe filtre pot fi conectate printr-un pipe.

Sed este o comandă utilizată pentru transformarea secvențelor de text. Comanda citește fișierele de intrare linie cu linie, apoi modifică fiecare linie corespunzător regulilor specificate într-un limbaj simplu, și afișează linia. Inițial, programul a fost creat ca un utilitar UNIX de către Lee E. McMahon la Bell Labs între 1973 și 1974 dar acum este disponibil pe aproape orice sistem de operare care suporta o linie de comandă.

Istoric

Sed este una din primele comenzi UNIX pentru prelucrat text. A evoluat din comanda grep și este folosit pe larg împreună cu AWK pentru prelucrări de text din linia de comandă sau prin intermediul programelor shell.

Sed și AWK sunt deseori prezentați ca precursorii limbajului Perl, sintaxa s / / / prezentată mai jos a fost preluată în Perl fiind introdusă original în editorul ed.

Limbajul sed nu are variabile, iar structurile de control sunt primitive. Totuși, limbajul este considerat Turing-complete. Varianta GNU a limbajului sed adaugă o serie nouă de elemente de limbaj. Cea mai bine cunoscută este modificarea pe loc a fișierelor text folosind rezultatul rulării programului. Această facilitate a fost mai târziu preluată și de versiunea sed din BSD.

Page 2: Sed

Utilizare

Editorul sed (stream editor) aplică un set de fix de comenzi editor pe un set de fişiere.

Sintaxa de apel:

sed [-n] [-e script] [-f script_date] [ fişier(e)]

-n Nu se produce tamponul de intrare după procesarea unei linii. Efectul acestei opţiuni se poate obţine dacă script-ul începe cu '#n'.

-e script Fişierele sunt editate conform script-ului. Script-ul trebuie inclus între apostrofuri, astfel încât caractere ca ';' si '\' sunt interpretate de sed şi nu de shell. Dacă o linie de comandă conţine numai o opţiune -e aceasta poate lipsi.

-f sfile Editează fişierul conform script-ului din sfile. Întrucât sed citeşte script-ul, convenţiile shell asupra '\' si '\n' nu se aplică.

Exemple

Conținutul fișierului inițial ( comenzi ) :

1. sed 's/ingropat/ridicat/g' comenzi

Page 3: Sed

2. sed 's/^/ /' comenzi

3. sed -n '/ai uitat/p' comenzi

4. sed –n 3p comenzi

5. sed –n 2,4p comenzi

Page 4: Sed

6. sed 2d comenzi

7. sed 2,4d comenzi

8. sed G comenzi

Page 5: Sed

9. sed '3!s/a/xxxxxxxx/' comenzi

10. sed '$d' comenzi

11. sed -e :a -e 's/^.\{1,77\}$/ &/;ta' -e \'s/\( *\)\1/\1/' comenzi( centrează textul )

12. sed -e :a -e 's/^.\{1,78\}$/\ &/;ta' file.txt( centrează pe dreapta )

13. sed = comenzi| sed 'N;s/\n/\t/'

14. sed '/./!d' file.txt ( șterge câmpurile goale )

Page 6: Sed

15. sed 'G;G' file.txt( triplează spațiile )