Sed
Wikipedia
- Teknisten rajoitusten vuoksi artikkelin yllä näkyvä otsikko on virheellisessä muodossa. Oikea kirjoitustapa on: sed.
Alun perin Unix:lle tehty sed (lyhenne sanoista stream editor) on tehokas ohjelmoitava vuonsuodatin tekstivirran manipulointiin.
Perl-ohjelmointikieli on saanut huomattavia vaikutteita sed:stä.
Normaalisti sed:n komento on muotoa:
[osoite1,[osoite2]] komento
jossa osoite1 tai osoite2 (tai kumpikin) voidaan antaa tekstivirran rivin numeerisen arvon sijasta myös ns. säännöllisenä lausekkeena.
Sisällysluettelo |
[muokkaa] Usein käytetyt komennot
[muokkaa] s/säännöllinenlauseke/korvike/liput
Esimerkki, tulostaa 'boaboaboa':
echo aaa | sed -e 's/a/boa/g'
Esimerkki, tulostaa 'baaa':
echo aaaa | sed -e 's/a/b/1'
Esimerkki, tulostaa 'abaa':
echo aaaa | sed -e 's/a/b/2'
[muokkaa] q
Poistuu sed:stä prosessoimatta enää komentoja.
Esimerkki, tulostaa:
aaa
bbb
( echo aaa; echo bbb; echo aaa; echo bbb; ) | sed -e '/b/ q'
[muokkaa] Esimerkkejä
Korvaa kaikki tiedoston a0 'a'-merkit 'b'-merkeillä ja tulostaa tuloksen oletustulostusvirtaan:
sed -e 's/a/b/g' a0
Korvaa kaikki tiedoston a0 'wikipedia' -merkkijonot lauseella 'wikipedia rulaa' ja tulostaa tuloksen oletustulostusvirtaan:
sed -e 's/\(wikipedia\)/\1 rulaa/g' a0
Tulostaa oletustulostusvirtaan kaikki tiedoston a0 rivit paitsi ne, joilla esiintyy sana wikipedia:
sed -e '/wikipedia/ d' a0
Esimerkki shell-skriptistä, joka käyttää sed:ä suodattaakseen HTML-koodista halutun informaation:
#!/bin/sh # rm -f ./t; rm -f ./u[1-2]; i=0; while [ -f ./"p$i" ]; do i=`expr 1 + $i`; done; perl -e 'print "GET http://www.proxy4free.com/page1.html HTTP/1.0\n\n";' >./t; nc www.proxy4free.com 80 <./t >./u1; rm -f ./t; perl -e 'print "GET http://www.proxy4free.com/page2.html HTTP/1.0\n\n";' >./t; nc www.proxy4free.com 80 <./t >./u2; rm -f ./t; sed -e '1,/Last Test/ d'\ -e '/class="pix1"/,/Last Test/ d'\ -e '/class="pix1"/,$ d'\ -e '/<\/td>$/N'\ -e '/<\/td>$/N'\ -e '/<\/td>$/N'\ -e '/<\/td>$/N'\ -e '/<\/td>$/N'\ -e 's/\n//g'\ -e 's/<\/td><td>/ /g'\ -e 's/<[^>]\{0,\}>//g'\ -e 's/[[:blank:]]\{0,\}Whois.\{0,\}//'\ -e '/^$/d'\ -e '/transparent/d'\ -e '/China/d' ./u[1-2] > ./"p$i"; rm -f ./u[1-2];
[muokkaa] Aiheesta muualla
Luokat: Unix | Ohjelmat | Ohjelmointi