SED(1)

NUME
sed - editor de flux pentru filtrarea și transformarea textului

REZUMAT
sed [OPTION]... {script-only-if-no-other-script} [input-file]...

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 editări scriptate (precum ed), sed funcționează făcând doar o singură trecere peste intrare(ări), ș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ă tipărirea automată a spațiului de model

--debug

    adnotează execuția programului

Script -e, --expression=script

    adaugă scriptul la comenzile de executat

-f script-file, --file=script-file

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

--follow-symlinks

    urmărește legăturile simbolice când se procesează pe loc

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

    editează fișierele pe loc (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

    deactivează toate extensiile GNU.

-E, -r, --regexp-extended

    utilizează expresii regulare 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ă o cantitate minimă de date din fişierele de intrare şi goleşte memoriile temporare mai des

-z, --null-data

    separă liniile după caractere NUL

--help
    afișează acest ajutor și ieși

--version
    afișează informații de versiune și ieși

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.

GNU sed pagină principală: <https://www.gnu.org/software/sed/>. Ajutor general utilizând software GNU: <https://www.gnu.org/gethelp/>. Trimiteți email cu rapoartele de defecțiuni la: <bug-sed@gnu.org>.

COMANDĂ REZUMAT
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” de adresă zero

: label
    Etichetă pentru comenzile b și t.

#comment
    Comentariul se extinde până la următoarea linie nouă (sau sfărșitul unui fragment de script -e).

}   Paranteza de închidere a unui bloc { }.

  Comenzi de adresă zero sau unu

=   Tipărește numărul de linie curentă.

a \

text
    Adaugă text, care are fiecare linie nouă încorporată precedată de o linie oblică inversă.

i \

text
    Introduce text, care are fiecare linie nouă încorporată precedată de o linie oblică inversă.

q [exit-code]
    Ieși imediat din scriptul sed fără a mai procesa intrări, cu excepția faptului că dacă auto-tipărirea nu este dezactivată spațiul de model curent va fi tipărit. Argumentul de cod de ieșire este o extensie GNU.

Q [exit-code]
    Ieși imediat din scriptul sed fără a mai procesa intrări. Aceasta este o extensie GNU.

r filename
    Adaugă text citit de la filename.

R filename
    Adaugă o linie citită de la filename. 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
    Bifurcă la label; dacă label este omis, bifurcă la sfărșitul scriptului.

c \

text
    Înlocuiește liniile selectate cu text, care are fiecare linie nouă încorporată precedată de o linie 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ă/adaugă spațiul model pentru a ține spațiu.

g G Copiază/adaugă spațiu de ținere la spațiu 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ă”, împărțind-o la caractere width. Aceasta este o extensie GNU.

n N Citește/adaugă următoarea linie de intrare în spațiul de model.

p   Tipărește spațiul de model curent.

P   Tipărește până la prima linie nouă încorporată a spațiului de model curent.

s/regexp/replacement/
    Încearcă să potrivești regexp împotriva spațiului model. Dacă este cu succes, înlocuiește acea porțiune potrivită cu replacement. replacement poate să conțină caracterul special & pentru a face referire la acea porțiune a spațiului model care s-a potrivit, și eludările speciale \1 până la \9 să facă referire la sub-expresiile potrivite corespunzătoare în regexp.

t eticheta
    Dacă un s// 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 bifurcă la label; dacă labeleste omis, bifurcă la sfărșitul scriptului.

T eticheta
    Dacă niciun s/// 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 bifurcă la label; dacă label este omis, bifurcă la sfârșitul scriptului. Aceasta este o extensie GNU.

w nume de fișier
    Scrie spațiul de model curent la filename.

W nume de fișier
    Scrie prima linie a spațiului model curent la filename. Aceasta este o extensie GNU.

x   Schimbă conținutul spațiilor model și de ținere.

y/sursă/destinaţie/
    Transliterează caracterele din spațiul model care apar în source la caracterul corespunzător din dest.

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 addr1,addr2 (adică adresele sunt separate printr-o virgulă); linia care a potrivit addr1 va fi întotdeauna acceptată, chiar dacă addr2 selectează o linie anterioară; și dacă addr2 este o regexp, nu va fi testată împotriva liniei care a potrivit addr1.

După adresa (sau intervalul de adresă), și înainte de comandă, un ! poate fi introdusă, car specifică faptul că comanda va fi executată doar dacă adresa (sau intervalul de adresă) not se potrivește.

Următoarele tipuri de adresă sunt suportate:

number
    Potrivește doar number de linie specificat (care incrementează cumulativ peste fișier, doar dacă opțiunea -s este specificată în linia de comandă).

first~step
    Potrivește fiecare a step linie care începe cu linia first. De exemplu, „sed -n 1~2p” va tipări toate liniile numerotate impar în fluxul de intrare, și adresa 2~5 va potrivi fiecare a cincea linie, începând cu a doua. first poate fi zero; în acest caz, sed operează ca și cum ar fi egal cu step. (Aceasta este o extensie.)

$   Potrivește ultima linie.

/regexp/
    Potrivește liniile care se potrivesc cu expresiile regulare regexp. Potrivirea este executată pe spațiul de model curent, care poate fi modificat cu comenzi precum „s///”.

\cregexpc
    Potrivește liniile care se potrivesc expresiei regulare regexp. c poate fi orice caracter.

sed GNU suportă de asemenea unele forme de adresă-2 speciale:

0,adr2
    Începe în starea „potrivit prima adresă”, până când addr2 este găsit. Acest lucru este similar cu 1,addr2, cu excepția faptului că dacă addr2 se potrivește primei linii de intrare forma 0,addr2 va fi la sfârșitul intervalului acesteia, în timp ce forma 1,addr2 va fi încă la începutul intervalului acesteia. Acest lucru funcționează când addr2 este o expresie regulară.

adr1,+N
    Va potrivi addr1 și liniile N care urmează după addr1.

adr1,~N
    Va potrivi addr1 și liniile care urmează după addr1 până la următoarea linie al cărei număr de linie de intrare este un multiplu de N.

EXPRESII REGULARE
POSIX.2 BRE-urile should să fie suportate, dar nu sunt suportate complet din cauza problemelor de performanță. Secvența \n într-o expresie regulară se potrivește caracterului de linie nouă, și similar pentru \a, \t, și alte sevențe. Opțiunea -E comută la utilizarea expresiilor regulare extinse în schimb; a fost suportat ani de sed GNU, și este acum inclus în POSIX.

ERORI NEPREVĂZUTE

Trimiteți prin e-mail raporturile de defecțiuni la bug-sed@gnu.org. De asemenea, includeți ieșirea a „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 activat pe acest sistem.

GNU sed pagină principală: <https://www.gnu.org/software/sed/>. Ajutor general utilizând software GNU: <https://www.gnu.org/gethelp/>. Trimiteți email cu rapoartele de defecțiuni la: <bug-sed@gnu.org>.

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

VEDEȚ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 și sed sunt instalate corespunzător la pagina personală, comanda

    info sed

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

TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Laurențiu Buzdugan <lbuz@rolix.org> și Florentina Mușat <florentina.musat.28@gmail.com>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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.