SED(1) Comenzi utilizator SED(1) NUME sed - editor de flux pentru filtrarea i transformarea textului REZUMAT sed [-V] [--version] [--help] [-n] [--quiet] [--silent] [-l N] [--line-length=N] [-u] [--unbuffered] [-E] [-r] [--regexp-extended] [-e script] [--expression=script] [-f script-file] [--file=fiier_script] [script-if-no-other-script] [fiier...] DESCRIERE Sed este un editor de flux. Un editor de flux este utilizat pentru a executa transformari de text de baza pe un flux de intrare (un fiier sau o intrare de la o conducta). In timp ce in anumite privine este asemanator cu un editor care permite editarea de scripturi (precum ed), sed funcioneaza facand doar o singura trecere peste datele de intrare, i este prin urmare mai eficient. Dar este abilitatea lui sed de a filtra text intr-o conducta care il distinge in mod particular de alte tipuri de editoare. -n, --quiet, --silent suprima afiarea automata a spaiului de model --debug adnoteaza execuia programului -e script, --expression=script adauga scriptul la comenzile de executat -f fiier_script, --file=fiier_script adauga coninutul fiierului script la comenzile de executat --follow-symlinks urmarete legaturile simbolice cand se opereaza direct, asupra fiierului -i[SUFIX], --in-place[=SUFIX] editeaza fiierele pe loc (opereaza direct, asupra fiierelor; face o copie de rezerva daca SUFIX este furnizat) -l N, --line-length=N specifica lungimea dorita a incadrarii liniei pentru comanda ,,l" --posix dezactiveaza toate extensiile GNU. -E, -r, --regexp-extended utilizeaza expresii regulate extinse in script (pentru portabilitate utilizai POSIX -E). -s, --separate considera fiierele ca separate faa de un singur, flux lung continuu. --sandbox opereaza in modul sandbox (dezactiveaza comenzile e/r/w). -u, --unbuffered incarca cantitai minime de date din fiierele de intrare i golete mai des memoriile tampon de ieire -z, --null-data separa liniile dupa caractere NUL --help afieaza acest mesaj de ajutor i iese --version afieaza informaiile despre versiune i iese Daca nu este data niciuna din opiunile -e, --expression, -f, sau --file, atunci primul argument non-opiune este luat ca scriptul <> de interpretat. Toate argumentele ramase sunt considerate nume de fiiere de intrare; daca nu este specificat nici un fiier de intrare, este citita intrarea standard. Pagina principala a GNU sed: . Ajutor general pentru utilizarea software-ului GNU: . Trimitei rapoartele de erori prin e-mail la: . REZUMAT COMANDA Acesta este doar un rezumat scurt ale comenzilor sed pentru a servi ca o aducere aminte pentru cei care tiu deja sed; alta documentaie (precum documentul texinfo) trebuie sa fie consultata pentru descrieri mai complete. ,,comenzi" fara adresa : eticheta Eticheta pentru comenzile b i t. #comentariu Comentariul se extinde pana la urmatoarea linie noua (sau sfaritul unui fragment de script -e). } Acolada de inchidere a unui bloc { }. Comenzi fara sau cu o adresa = Afieaza numarul de linie curenta. a \ text Adauga text, care are fiecare linie noua incorporata precedata de o bara oblica inversa. i \ text Introduce text, care are fiecare linie noua incorporata precedata de o bara oblica inversa. q [cod_de_ieire] Iese imediat din scriptul sed) fara a mai procesa alte date de intrare, cu excepia faptului ca, daca opiunea de auto-imprimare nu este dezactivata, spaiul de model curent va fi imprimat. Argumentul de cod de ieire este o extensie GNU. Q [cod_de_ieire] Iese imediat din scriptul sed fara a mai procesa intrari. Aceasta este o extensie GNU. r nume_fiier Adauga text citit din nume_fiier. R nume_fiier Adauga o linie citita de la nume_fiier. Fiecare invocare a comenzii citete o linie de la fiier. Aceasta este o extensie GNU. Comenzi care accepta intervale de adresa { Incepe un bloc de comenzi (termina cu o }). b eticheta Trece la eticheta; daca eticheta este omisa, trece la sfaritul scriptului. c \ text Inlocuiete liniile selectate cu text, care are fiecare linie noua incorporata precedata de o bara oblica inversa. d terge spaiul model. Incepe un ciclu nou. D Daca spaiul model nu conine nicio linie noua, incepe un ciclu normal nou ca i cum comanda d a fost emisa. Altfel, terge textul in spaiul model pana la prima linie noua, i repornete ciclul cu spaiul model rezultant, fara a citi o linie noua de intrare. h H Copiaza/adauga spaiul de model la spaiul de stocare. g G Copiaza/adauga spaiul de stocare la spaiul de model. l Listeaza linia curenta intr-o forma ,,lipsita de ambiguitate vizuala". l latime Listeaza linia curenta intr-o forma ,,lipsita de ambiguitate vizuala", intrerupand-o la laime caractere. Aceasta este o extensie GNU. n N Citete/adauga urmatoarea linie de intrare in spaiul de model. p Afieaza spaiul de model curent. P Afieaza pana la prima linie noua incorporata a spaiului de model curent. s/exp_reg/inlocuirea/ Incearca sa potriveasca exp_reg cu spaiul modelului. Daca reuete, inlocuiete poriunea care corespunde cu "inlocuirea". inlocuirea poate conine caracterul special & pentru a se referi la acea parte a spaiului de model care s-a potrivit, precum i eludarile speciale de la \1 la \9 pentru a se referi la sub-expresiile corespunzatoare din exp_reg care se potrivesc. t eticheta Daca o s/// (substituire) a efectuat o substituie cu succes de cand a fost citita ultima linie de intrare i de la ultima comanda t sau T, atunci trece la eticheta; daca etichetaeste omisa, trece la sfaritul scriptului. T eticheta Daca nicio s/// (substituire) nu a efectuat o substituie cu succes de cand a fost citita ultima linie de intrare i de la ultima comanda t sau T, atunci trece la eticheta; daca eticheta este omisa, trece la sfaritul scriptului. Aceasta este o extensie GNU. w nume_fiier Scrie spaiul de model curent in nume_fiier. W nume_fiier Scrie prima linie a spaiului model curent in nume_fiier. Aceasta este o extensie GNU. x Interschimba coninutul spaiilor de stocare i de model. y/sursa/destinatie/ Translitereaza caracterele din spaiul model care apar in sursa la caracterul corespunzator din destinaie. Adrese Comenzile Sed pot fi date fara adrese, in care caz comanda va fi executata pentru toate liniile de intrare; cu o adresa, in care caz comanda va fi executata doar pentru liniile de intrare care se potrivesc cu acea adresa; sau cu doua adrese, in care caz comanda va fi executata pentru toate liniile de intrare care se potrivesc intervalului inclusiv de linii care incep de la prima adresa i se continua la a doua adresa. Trei lucruri de observat despre intervalele de adresa: sintaxa este adresa1,adresa2 (adica adresele sunt separate printr-o virgula); linia care a potrivit adresa1 va fi intotdeauna acceptata, chiar daca adresa2 selecteaza o linie anterioara; i daca adresa2 este o exp_reg, nu va fi testata impotriva liniei care a potrivit adresa1. Dupa adresa (sau intervalul de adrese) i inainte de comanda, se poate introduce un !, care specifica faptul ca aceasta comanda va fi executata numai daca adresa (sau intervalul de adrese) nu se potrivete. Urmatoarele tipuri de adresa sunt suportate: numar Potrivete numai linia specificata numarul (care se incrementeaza cumulativ in toate fiierele, cu excepia cazului in care opiunea -s este specificata in linia de comanda). prima~etapa Potrivete fiecare a etapa linie care incepe cu linia prima. De exemplu, <> va afia toate liniile numerotate impar in fluxul de intrare, i adresa 2~5 va potrivi fiecare a cincea linie, incepand cu a doua. prima poate fi zero; in acest caz, sed opereaza ca i cum ar fi egala cu etapa. (Aceasta este o extensie.) $ Potrivete ultima linie. /exp_reg/ Potrivete liniile care se potrivesc cu expresia regulata exp_reg. Potrivirea este executata pe spaiul de model curent, care poate fi modificat cu comenzi precum ,,s///". \cexp_regc Potrivete liniile care se potrivesc expresiei regulate exp_reg. c poate fi orice caracter. GNU sed accepta, de asemenea, unele forme speciale cu doua adrese: 0,adresa2 Incepe in starea ,,prima adresa potrivita", pana cand adresa2 este gasita. Acest lucru este similar cu 1,adresa2, cu excepia faptului ca, daca adresa2 se potrivete cu prima linie de intrare, forma 0,adresa2 se va afla la sfaritul intervalului sau, in timp ce forma 1,adresa2 se va afla inca la inceputul intervalului sau. Acest lucru funcioneaza numai atunci cand adresa2 este o expresie regulata. adresa1,+N Va potrivi adresa1 i liniile N care urmeaza dupa adresa1. adresa1,~N Va potrivi adresa1 i liniile care urmeaza dupa adresa1 pana la urmatoarea linie al carei numar de linie de intrare este un multiplu de N. EXPRESII REGULATE BRE-urile (Basic Regular Expression) POSIX.2 ar trebui sa fie acceptate, dar nu sunt acceptate complet din cauza problemelor de performana. Secvena \n intr-o expresie regulata se potrivete caracterului de linie noua, i similar pentru \a, \t, i alte secvene. Opiunea -E comuta la utilizarea expresiilor regulate extinse in locul acestora; aceasta este admisa de ani de zile de GNU sed, iar acum este inclusa in POSIX. ERORI Trimitei rapoartele de erori prin e-mail la bug-sed@gnu.org. De asemenea, includei ieirea comenzii <> in corpul raportului daca este posibil. AUTOR Scris de Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering, i Assaf Gordon. Acest program <> a fost construit fara suport SELinux. Pagina principala a GNU sed: . Ajutor general pentru utilizarea software-ului GNU: . Trimitei rapoartele de erori prin e-mail la: . DREPTURI DE AUTOR Drepturi de autor (C) 2022 Free Software Foundation, Inc. Licena GPLv3+: GNU GPL versiunea 3 sau ulterioara . Acesta este software liber: suntei liber sa-l modificai i sa-l redistribuii. Nu exista NICIO GARANIE, in limitele prevazute de lege. CONSULTAI I awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, oricare din diversele cari despre sed, FAQ sed (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/. Documentaia completa pentru sed este meninuta ca un manual Texinfo. Daca programele info(1) i sed sunt instalate corect pe sistemul dumneavoastra, comanda info sed ar trebui sa va permita accesul la manualul complet. TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Laureniu Buzdugan , Florentina Muat i Remus-Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . GNU sed 4.9 martie 2023 SED(1)