Sed - Sfaturi și trucuri
= [Sed] Sfaturi și trucuri
Substituţie
Înlocuiți "foo" cu "bar" pe fiecare linie
Numai prima apariție
sed 's / foo / bar /'
Numai pentru al treilea caz
sed 's / foo / bar / 3'
Toate aparițiile
sed "/ foo / bar / g"
Chiar înainte de ultima întâmplare
(\ * foo \) / \ 1bar \ 2 / '\'
Doar ultimul caz
sed 's / \ (. *) foo / \ 1bar /'
Înlocuiți "foo" cu linii "bare" care conțin numai "plop"
sed '/ plop / s / foo / bar / g'
Înlocuitorul "foo" cu "bar", cu excepția liniilor care conțin "plop"
sed '/ plop /! s / foo / bar / g "
Înlocuiți "Foo" sau "foo" cu "bar" pe fiecare rând
sed 's / [Ff] oo / bar / g'
Înlocuiți "albastru" sau "alb" sau "roșu" cu "verde"
sed / albastru \ | gol \ | roșu / verde / g '
Afişa
Prima linie (cap -1)
sed q
Primele 5 linii (cap -5)
sed'5 q '
sed'1, 5! d '
Ultima linie (coada -1)
sed-n '$ p'
sed '$! d "
Ultimele 5 linii (coada -5)
sed-e: ae '$ q, N, 6, $ D; ba“
Cele două linii de ultimul (coada -2)
sed '$! N; $! D“
Numai linii corespund unui motiv sau unei expresii regulate
sed-n '/ model / p'
sed '/ regexp /! d“
Doar liniile care nu corespund unui motiv sau unei expresii regulate
sed-n '/ model /! p“
sed '/ regexp / d'
Linia care precede un model sau o expresie regulată
sed-n '/ model / (g; lp;) h'
Linia care urmează unui model sau unei expresii regulate
sed-n '/ regexp / (n, p;)'
Elimina
=== Spațiu și fila ==
Eliminarea spațiilor și a filelor
La începutul liniei
sed 's / ^ [\ t] * /
sed 's / ^ \ s * / /' Folosind parametrul "\ s"
La sfârșitul liniei
sed 's / [\ t] * $ //'
La începutul și la sfârșitul liniei
sed 's / ^ [\ t] * /; s / [\ t] * $ // '
Linie goală
Eliminarea liniilor goale
Toate liniile goale
sed '/ ^ $ / din
SED "/./! de
Doar cei din vârf
SED '/./, $! de
sed-nr '/./, $/(.*)/ s \ 1 / p' # vă mulțumesc Adrien
Numai cei de la capăt
sed-e: ae '/ ^ \ n * $ / ($ d N; ba'-e') '
Intervale regulate
Eliminați o linie la intervale regulate
Toate perechile de linii
sed'1 ~ 2d '
Toate liniile ciudate
sed'2 ~ 2d '
Fiecare n de la linia n
sed'3 ~ 2d '# 2 Toate liniile de la linia 3
Diverse
Alăturați linii
Atașați linii 2 pe 2
sed '$! N s / \ n / / '
Atașați cele 3 linii cu 3
sed '$! N s / \ n //; $! N s / \ n /;; '
Dacă o linie se termină cu un backslash (\), adăugați următoarea linie și înlocuiți capătul liniei (\ n) cu un spațiu
sed-e: ae '/ \ \ $ / N s / \ \ \ n / /; ta“
Dacă o linie începe cu un semn egal (=), adăugați-o la linia anterioară și înlocuiți semnul egal (=) cu un spațiu
sed-e: ae '$! N s / \ n = / /; ta'-e 'P, D'