Scroll to navigation

SED(1) Comenzi utilizator 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.
filename
Adaugă text citit de la filename.
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 }).
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ăţ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.
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.
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.
nume de fișier
Scrie spațiul de model curent la filename.
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. 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 © 2018 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 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 2018 sed 4.7