Sed, programe și utilități

Acesta a fost inițial scris ca un utilitar UNIX de Lee E. McMahon de la Bell Labs în 1973-74. Acum, sed este disponibil pentru aproape orice sistem de operare care acceptă linia de comandă.







sed obține fluxul de intrare (de obicei un fișier) linia de linie, editează fiecare linie în conformitate cu regulile definite în sed-script folosind limbajul simplu sed. și apoi trimite rezultatul la fluxul de ieșire.

Următorul exemplu demonstrează utilizarea tipică a sed:

Aici s este un înlocuitor; g este global, ceea ce înseamnă "toate aparițiile valorii căutate". După prima tăietură directă, se găsește o expresie regulată pentru căutare, după a doua, o expresie de înlocuire. Cu toate acestea, trebuie reținut faptul că, în plus față de slash, poate fi folosit un alt simbol. De exemplu, expresii

Comanda replace (s ///) este de departe cea mai puternică și adesea folosită comandă sed. Redirecționarea ieșirii standard "> outputFileName" poate fi omisă, apoi sed afișează rezultatul pe ecran.

În Unix, comanda sed este adesea folosită ca un filtru într-o conductă (sau conductă):

Astfel, datele sunt generate și transferate în conductă pentru a înlocui x cu y.

Mai multe comenzi pot fi combinate într-un fișier (de exemplu, subst.sed) și apoi aplicate ca:

Pe lângă înlocuire, sunt posibile alte forme de procesare simplă. De exemplu, următorul script elimină liniile goale sau șirurile care conțin numai spații:







Ultimul exemplu a folosit o parte a expresiei regulate-metacaractere:

  • ^ Se potrivește cu începutul liniei
  • $ Corespunde la sfârșitul liniei
  • . Se potrivește cu un singur caracter
  • * Corespunde la zero sau mai multe repetări ale simbolului precedent
  • [] Se potrivește cu oricare dintre personajele închise în paranteze pătrate, []

Construcțiile complexe sunt posibile într-o asemenea măsură încât să poată fi reprezentate ca un limbaj de programare foarte specializat, deși simplu. De exemplu, fluxul de control poate fi controlat folosind o etichetă (un colon urmat de un șir care trebuie să fie un nume de etichetă) și instrucțiunea ramură b; instruire b. urmată de numele etichetei corecte, va muta procesarea în bloc după etichetă; dacă eticheta nu există, ramificarea va completa scriptul (scriptul).

sed este una dintre primele comenzi Unix care vă permite să procesați fișierele de date din linia de comandă. sed a dezvoltat ca succesor natural al echipei grepilor populare. În ceea ce privește limbajul de programare AWK ulterior, sed a permis utilizarea de procesare puternică și interesantă a datelor în scripturile shell și a fost unul dintre primele instrumente Unix care încurajează cu adevărat utilizarea expresiilor regulate.

Performanța sedului este considerabil mai rapidă decât AWK. [sursa nu este specificată 507 zile]

sed și awk sunt adesea considerați strămoșii și inspiranții limbii Perl, și mai ales sintaxa "s ///" din exemplul de mai sus.

Sed nu are variabile, există doar o funcționalitate GOTO primitivă și ramificantă; cu toate acestea, acesta este un limbaj turing-complet.

GNU sed are câteva caracteristici noi, cum ar fi înlocuirea fișierelor (înlocuind fișierul original cu sed). Editarea alternativă este adesea folosită în locul scriptului ed. de exemplu

pot fi folosite în loc de

Există o versiune extinsă de sed. numit Super-sed (ssed), care include expresii regulate compatibile cu Perl.







Articole similare

Trimiteți-le prietenilor: