SED(1) Comenzi utilizator SED(1)

sed - editor de flux pentru filtrarea și transformarea textului

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=fișier_script]
    [script-if-no-other-script]
    [fișier...]

Sed este un editor de flux. Un editor de flux este utilizat pentru a executa transformări de text de bază pe un flux de intrare (un fișier sau o intrare de la o conductă). În timp ce în anumite privințe este asemănător cu un editor care permite editarea de scripturi (precum ed), sed funcționează făcând doar o singură trecere peste datele de intrare, și este prin urmare mai eficient. Dar este abilitatea lui sed de a filtra text într-o conductă care îl distinge în mod particular de alte tipuri de editoare.

-n, --quiet, --silent

suprimă afișarea automată a spațiului de model

--debug

adnotează execuția programului

-e script, --expression=script

adaugă scriptul la comenzile de executat

-f fișier_script, --file=fișier_script

adaugă conținutul fișierului script la comenzile de executat

--follow-symlinks

urmărește legăturile simbolice când se operează direct, asupra fișierului

-i[SUFIX], --in-place[=SUFIX]

editează fișierele pe loc (operează direct, asupra fișierelor; face o copie de rezervă dacă SUFIX este furnizat)

-l N, --line-length=N

specifică lungimea dorită a încadrării liniei pentru comanda „l”

--posix

dezactivează toate extensiile GNU.

-E, -r, --regexp-extended

utilizează expresii regulate extinse în script (pentru portabilitate utilizați POSIX -E).

-s, --separate

consideră fișierele ca separate față de un singur, flux lung continuu.

--sandbox

operează în modul sandbox (dezactivează comenzile e/r/w).

-u, --unbuffered

încarcă cantități minime de date din fișierele de intrare și golește mai des memoriile tampon de ieșire

-z, --null-data

separă liniile după caractere NUL
afișează acest mesaj de ajutor și iese
afișează informațiile despre versiune și iese

Dacă nu este dată niciuna din opțiunile -e, --expression, -f, sau --file, atunci primul argument non-opțiune este luat ca scriptul «sed» de interpretat. Toate argumentele rămase sunt considerate nume de fișiere de intrare; dacă nu este specificat nici un fișier de intrare, este citită intrarea standard.

Pagină principală a GNU sed: https://www.gnu.org/software/sed/. Ajutor general pentru utilizarea software-ului GNU: https://www.gnu.org/gethelp/. Trimiteți rapoartele de erori prin e-mail la: <bug-sed@gnu.org>.

Acesta este doar un rezumat scurt ale comenzilor sed pentru a servi ca o aducere aminte pentru cei care știu deja sed; altă documentație (precum documentul texinfo) trebuie să fie consultată pentru descrieri mai complete.

„comenzi” fără adresă

eticheta
Etichetă pentru comenzile b și t.
#comentariu
Comentariul se extinde până la următoarea linie nouă (sau sfârșitul unui fragment de script -e).
}
Acolada de închidere a unui bloc { }.

=
Afișează numărul de linie curentă.
Adaugă text, care are fiecare linie nouă încorporată precedată de o bară oblică inversă.
Introduce text, care are fiecare linie nouă încorporată precedată de o bară oblică inversă.
Iese imediat din scriptul sed) fără a mai procesa alte date de intrare, cu excepția faptului că, dacă opțiunea de auto-imprimare nu este dezactivată, spațiul de model curent va fi imprimat. Argumentul de cod de ieșire este o extensie GNU.
Iese imediat din scriptul sed fără a mai procesa intrări. Aceasta este o extensie GNU.
Adaugă text citit din nume_fișier.
Adaugă o linie citită de la nume_fișier. Fiecare invocare a comenzii citește o linie de la fișier. Aceasta este o extensie GNU.

{
Începe un bloc de comenzi (termină cu o }).
Trece la eticheta; dacă eticheta este omisă, trece la sfârșitul scriptului.
Înlocuiește liniile selectate cu text, care are fiecare linie nouă încorporată precedată de o bară oblică inversă.
Șterge spațiul model. Începe un ciclu nou.
Dacă spațiul model nu conține nicio linie nouă, începe un ciclu normal nou ca și cum comanda d a fost emisă. Altfel, șterge textul în spațiul model până la prima linie nouă, și repornește ciclul cu spațiul model rezultant, fără a citi o linie nouă de intrare.
Copiază/adăugă spațiul de model la spațiul de stocare.
Copiază/adaugă spațiul de stocare la spațiul de model.
Listează linia curentă într-o formă „lipsită de ambiguitate vizuală”.
lăţime
Listează linia curentă într-o formă „lipsită de ambiguitate vizuală”, întrerupând-o la lățime caractere. Aceasta este o extensie GNU.
Citește/adaugă următoarea linie de intrare în spațiul de model.
Afișează spațiul de model curent.
Afișează până la prima linie nouă încorporată a spațiului de model curent.
Încearcă să potrivească exp_reg cu spațiul modelului. Dacă reușește, înlocuiește porțiunea care corespunde cu "înlocuirea". înlocuirea poate conține caracterul special & pentru a se referi la acea parte a spațiului de model care s-a potrivit, precum și eludările speciale de la \1 la \9 pentru a se referi la sub-expresiile corespunzătoare din exp_reg care se potrivesc.
Dacă o s/// (substituire) a efectuat o substituție cu succes de când a fost citită ultima linie de intrare și de la ultima comandă t sau T, atunci trece la eticheta; dacă etichetaeste omisă, trece la sfârșitul scriptului.
Dacă nicio s/// (substituire) nu a efectuat o substituție cu succes de când a fost citită ultima linie de intrare și de la ultima comandă t sau T, atunci trece la eticheta; dacă eticheta este omisă, trece la sfârșitul scriptului. Aceasta este o extensie GNU.
Scrie spațiul de model curent în nume_fișier.
Scrie prima linie a spațiului model curent în nume_fișier. Aceasta este o extensie GNU.
Interschimbă conținutul spațiilor de stocare și de model.
Transliterează caracterele din spațiul model care apar în sursă la caracterul corespunzător din destinație.

Comenzile Sed pot fi date fără adrese, în care caz comanda va fi executată pentru toate liniile de intrare; cu o adresă, în care caz comanda va fi executată doar pentru liniile de intrare care se potrivesc cu acea adresă; sau cu două adrese, în care caz comanda va fi executată pentru toate liniile de intrare care se potrivesc intervalului inclusiv de linii care încep de la prima adresă și se continuă la a doua adresă. Trei lucruri de observat despre intervalele de adresă: sintaxa este adresa1,adresa2 (adică adresele sunt separate printr-o virgulă); linia care a potrivit adresa1 va fi întotdeauna acceptată, chiar dacă adresa2 selectează o linie anterioară; și dacă adresa2 este o exp_reg, nu va fi testată împotriva liniei care a potrivit adresa1.

După adresă (sau intervalul de adrese) și înainte de comandă, se poate introduce un !, care specifică faptul că această comandă va fi executată numai dacă adresa (sau intervalul de adrese) nu se potrivește.

Următoarele tipuri de adresă sunt suportate:

Potrivește numai linia specificată numărul (care se incrementează cumulativ în toate fișierele, cu excepția cazului în care opțiunea -s este specificată în linia de comandă).
Potrivește fiecare a etapă linie care începe cu linia prima. De exemplu, «sed -n 1~2p» va afișa toate liniile numerotate impar în fluxul de intrare, și adresa 2~5 va potrivi fiecare a cincea linie, începând cu a doua. prima poate fi zero; în acest caz, sed operează ca și cum ar fi egală cu etapă. (Aceasta este o extensie.)
$
Potrivește ultima linie.
/exp_reg/
Potrivește liniile care se potrivesc cu expresia regulată exp_reg. Potrivirea este executată pe spațiul de model curent, care poate fi modificat cu comenzi precum „s///”.
Potrivește liniile care se potrivesc expresiei regulate exp_reg. c poate fi orice caracter.

GNU sed acceptă, de asemenea, unele forme speciale cu două adrese:

0,adresa2
Începe în starea „prima adresă potrivită”, până când adresa2 este găsită. Acest lucru este similar cu 1,adresa2, cu excepția faptului că, dacă adresa2 se potrivește cu prima linie de intrare, forma 0,adresa2 se va afla la sfârșitul intervalului său, în timp ce forma 1,adresa2 se va afla încă la începutul intervalului său. Acest lucru funcționează numai atunci când adresa2 este o expresie regulată.
Va potrivi adresa1 și liniile N care urmează după adresa1.
Va potrivi adresa1 și liniile care urmează după adresa1 până la următoarea linie al cărei număr de linie de intrare este un multiplu de N.

BRE-urile (Basic Regular Expression) POSIX.2 ar trebui să fie acceptate, dar nu sunt acceptate complet din cauza problemelor de performanță. Secvența \n într-o expresie regulată se potrivește caracterului de linie nouă, și similar pentru \a, \t, și alte secvențe. Opțiunea -E comută la utilizarea expresiilor regulate extinse în locul acestora; aceasta este admisă de ani de zile de GNU sed, iar acum este inclusă în POSIX.

Trimiteți rapoartele de erori prin e-mail la bug-sed@gnu.org. De asemenea, includeți ieșirea comenzii «sed --version» în corpul raportului dacă este posibil.

Scris de Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering, și Assaf Gordon.

Acest program «sed» a fost construit fără suport SELinux.

Pagină principală a GNU sed: https://www.gnu.org/software/sed/. Ajutor general pentru utilizarea software-ului GNU: https://www.gnu.org/gethelp/. Trimiteți rapoartele de erori prin e-mail la: <bug-sed@gnu.org>.

Drepturi de autor © 2022 Free Software Foundation, Inc. Licența GPLv3+: GNU GPL versiunea 3 sau ulterioară https://gnu.org/licenses/gpl.html.
Acesta este software liber: sunteți liber să-l modificați și să-l redistribuiți. Nu există NICIO GARANȚIE, în limitele prevăzute de lege.

awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, oricare din diversele cărți despre sed, FAQ sed (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/.

Documentația completă pentru sed este menținută ca un manual Texinfo. Dacă programele info(1) și sed sunt instalate corect pe sistemul dumneavoastră, comanda

info sed

ar trebui să vă permită accesul la manualul complet.

Traducerea în limba română a acestui manual a fost făcută de Laurențiu Buzdugan <lbuz@rolix.org>, Florentina Mușat <florentina.musat.28@gmail.com> și Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

martie 2023 GNU sed 4.9