table of contents
SED(1) | Comenzi utilizator | SED(1) |
NUME¶
sed - editor de flux pentru filtrarea și transformarea textului
SINOPSIS¶
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...]
DESCRIERE¶
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
- --help
- afișează acest mesaj de ajutor și iese
- --version
- 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>.
REZUMAT COMANDö
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 { }.
Comenzi fără sau cu o adresă¶
- =
- Afișează numărul de linie curentă.
- a \
- text
- Adaugă text, care are fiecare linie nouă încorporată precedată de o bară oblică inversă.
- i \
- text
- Introduce text, care are fiecare linie nouă încorporată precedată de o bară oblică inversă.
- q [cod_de_ieșire]
- 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.
- Q [cod_de_ieșire]
- Iese imediat din scriptul sed fără a mai procesa intrări. Aceasta este o extensie GNU.
- r nume_fișier
- Adaugă text citit din nume_fișier.
- R 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.
Comenzi care acceptă intervale de adresă¶
- {
- Începe un bloc de comenzi (termină cu o }).
- b eticheta
- Trece la eticheta; dacă eticheta este omisă, trece la sfârșitul scriptului.
- c \
- text
- Înlocuiește liniile selectate cu text, care are fiecare linie nouă încorporată precedată de o bară oblică inversă.
- d
- Șterge spațiul model. Începe un ciclu nou.
- D
- 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.
- h H
- Copiază/adăugă spațiul de model la spațiul de stocare.
- g G
- Copiază/adaugă spațiul de stocare la spațiul de model.
- l
- Listează linia curentă într-o formă „lipsită de ambiguitate vizuală”.
- l lăţime
- Listează linia curentă într-o formă „lipsită de ambiguitate vizuală”, întrerupând-o la lățime caractere. Aceasta este o extensie GNU.
- n N
- Citește/adaugă următoarea linie de intrare în spațiul de model.
- p
- Afișează spațiul de model curent.
- P
- Afișează până la prima linie nouă încorporată a spațiului de model curent.
- s/exp_reg/înlocuirea/
- Î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.
- t eticheta
- 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.
- T eticheta
- 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.
- w nume_fișier
- Scrie spațiul de model curent în nume_fișier.
- W nume_fișier
- Scrie prima linie a spațiului model curent în nume_fișier. Aceasta este o extensie GNU.
- x
- Interschimbă conținutul spațiilor de stocare și de model.
- y/sursă/destinaţie/
- Transliterează caracterele din spațiul model care apar în sursă la caracterul corespunzător din destinație.
Adrese¶
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:
- număr
- 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ă).
- prima~etapă
- 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///”.
- \cexp_regc
- 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ă.
- adresa1,+N
- Va potrivi adresa1 și liniile N care urmează după adresa1.
- adresa1,~N
- 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.
EXPRESII REGULATE¶
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.
ERORI¶
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.
AUTOR¶
Scris de Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering, și Assaf Gordon.
Acest program «sed» a fost construit cu suport SELinux. SELinux este dezactivat pe acest sistem.
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¶
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.
CONSULTAȚI ȘI¶
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.
TRADUCERE¶
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.
decembrie 2022 | GNU sed 4.9 |