sed - editor de flux pentru filtrarea și transformarea
textului
sed [OPTION]... {script-only-if-no-other-script}
[input-file]...
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>.
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 { }.
- =
- 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.
- {
- Î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.
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.
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.
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.
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 © 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.
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.
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.