Sunteți pe pagina 1din 6

Noiuni fundamentale.

Un filtru este un program care modific sau transform intrarea sa. De


regul, filtrul citete intrarea standard i scrie la ieirea standard, fapt pentru
care mai multe filtre pot fi conectate printr-un pipe.
Sed este o comand utilizat pentru transformarea secvenelor de text.
Comanda citete fiierele de intrare linie cu linie, apoi modific fiecare linie
corespunztor regulilor specificate ntr-un limbaj simplu, i afieaz linia.
Iniial, programul a fost creat ca un utilitar UNIX de ctre 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 prelucrri de
text din linia de comand sau prin intermediul programelor shell.
Sed i AWK sunt deseori prezentai 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. Totui,
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 fiierelor text folosind rezultatul rulrii programului.
Aceast facilitate a fost mai trziu preluat i de versiunea sed din BSD.

Utilizare

Editorul sed (stream editor) aplic un set de fix de comenzi editor pe un set
de fiiere.
Sintaxa de apel:
sed [-n] [-e script] [-f script_date] [ fiier(e)]
-n Nu se produce tamponul de intrare dup procesarea unei linii. Efectul
acestei opiuni se poate obine dac script-ul ncepe cu '#n'.
-e script Fiierele sunt editate conform script-ului. Script-ul trebuie inclus
ntre apostrofuri, astfel nct caractere ca ';' si '\' sunt interpretate de sed i
nu de shell. Dac o linie de comand conine numai o opiune -e aceasta
poate lipsi.
-f sfile Editeaz fiierul conform script-ului din sfile. ntruct sed citete
script-ul, conveniile shell asupra '\' si '\n' nu se aplic.
Exemple
Coninutul fiierului iniial ( comenzi ) :

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

2. sed 's/^/ /' comenzi

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

4. sed n 3p comenzi

5. sed n 2,4p comenzi

6. sed 2d comenzi

7. sed 2,4d comenzi

8. sed G comenzi

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.

15.

sed '/./!d' file.txt


( terge cmpurile goale )

sed 'G;G' file.txt


( tripleaz spaiile )

S-ar putea să vă placă și