Sed - Nõuanded ja nipid

Sed või Stream Editor, nagu see on üldtuntud, kasutatakse peamiselt teksti analüüsimiseks ja mis tahes teksti muutmiseks skripti sees. Seda Sedi funktsiooni kasutatakse Shelli skriptides paindlike ja dünaamiliste koodide loomiseks. Teades tavalisi näpunäiteid ja vihjeid, saavad kasutajad oma koodide suurel määral optimeerida. Võib teha kohandatud kohandusi tekstis, näiteks ühe teksti asendamiseks teise, mis põhineb esinemiste arvul, näidates konkreetseid ridu ja eemaldades tühikuid või tühikuid. Võib kasutada ka näpunäiteid mitmesuguste esemete jaoks, näiteks mitme rea ühendamiseks või spetsiaalsete märkide asendamiseks konkreetsetest ridadest.

= [Sed] Nõuanded ja nipid

Asendamine

Asenda "foo" iga rida "bar" abil

Ainult 1. sündmus

sed 's / foo / bar /'

Ainult kolmanda juhtumi puhul

sed 's / foo / bar / 3'

Kõik juhtumid

sed 's / foo / bar / g'

Vahetult enne viimast sündmust

sed 's / (. *) foo (. * foo) / 1bar 2 /'

Ainult viimane juhtum

sed / s (/ *) foo / 1bar / '

Asendage "foo" asendiga "bar" ainult read, mis sisaldavad "plop"

sed '/ plop / s / foo / bar / g'

Asendage "foo" sõnaga "bar", välja arvatud read, mis sisaldavad "plop"

sed '/ plop /! s / foo / bar / g '

Vahetage "Foo" või "foo" igas reas "bar"

sed 's / [Ff] oo / bar / g'

Asenda "sinine" või "valge" või "punane" sõnaga "roheline"

sed 's / sinine \ t tühi | punane / roheline / g '

Ekraan

Esimene rida (pea -1)

sed q

Esimesed 5 rida (pea -5)

sed'5 q '

sed'1, 5! d '

Viimane rida (saba -1)

sed-n '$ p'

sed '$! d "

Viimased 5 rida (saba -5)

sed-e: ae '$ q, N, 6, $ D; ba '

2 viimast rida (saba -2)

sed '$! N; $! D '

Ainult read sobivad põhjuse või regulaaravaldisega

sed-n '/ muster / p'

sed '/ regexp /! d '

Ainult read, mis ei sobi mitte põhjusega ega regulaaravaldisega

sed-n '/ muster /! p '

sed '/ regexp / d'

Rida, mis eelneb mustrile või regulaaravaldisele

sed-n '/ muster / (g; 1! p;) h'

Rida järgib mustrit või regulaaravaldist

sed-n '/ regexp / (n, p;)'

Eemalda

=== tühik ja kaart ==

Tühikute ja kaartide eemaldamine

Liini alguses

sed 's / ^ [\ t

sed 's / ^ s * / /' # Parameetri "s" kasutamine

Rea lõpus

sed 's / [\ t

Rea alguses ja lõpus

sed 's / ^ [*]; s / [] * $ // '

Tühi rida

Tühjade ridade eemaldamine

Kõik tühjad read

sed '/ ^ $ / of

sed '/./! of

Ainult need, kes on üleval

sed '/./, $! of

sed-nr '/./, $ /(.*)/ s 1 / p' # tänan Adrienit

Ainult lõpus olevad

sed-e: ae '/ ^ n * $ / ($ d N; ba'-e') '

Regulaarsed intervallid

Likvideerige liin regulaarsete ajavahemike järel

Kõik liinid paarid

sed'1 ~ 2d '

Kõik paaritu jooned

sed'2 ~ 2d '

Iga n rida n-st

sed'3 ~ 2d '# 2 Kõik read liinist 3

Mitmesugused

Liitu liinidega

Kinnitage read 2 by 2

sed '$! N s / \ t

Kinnitage 3 rida 3-ga

sed '$! N s / n //; $! N s / n /; '

Kui joon lõpeb tagaküljega (), lisage järgmine rida ja asenda rea ​​(\ t

sed-e: ae '/ $ / N s / n / /; ta '

Kui rida algab võrdse tähisega (=), lisage see eelmisele reale ja asenda võrdne märk (=) tühikuga

sed-e: ae '$! N s / n = / /; ta'-e 'P, D'

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited