[FreeBSD] sed

Gabor Zahemszky ZGabor at CoDe.hu
2001. Aug. 16., Cs, 12:38:38 CEST


On Thu, Aug 16, 2001 at 11:54:15AM +0200, Bacsek Lajos wrote:
> >pipe eleje |
> >sed -e '1,/ez itt a kezdet/d' -e '/ez itt a vegzet/,$d' |
> >pipe vege
> 
> Ez mindenesetre mukodik nekem is, bar anelkul, hogy ertenem....

-e: itt egy sed parancs van, es mivel tobb van, ez kotelezo mindegyik elott

'1,/kezdet/d': az elso sortol (1,) a "kezdet" sztringet tartalmazo sorig
(,/kezdet/) torold ki a sorokat (d).  Majd a maradekra (ha meg van - azaz az
elso "kezdet"-et tartalmazo sor utan) csinalj egy hasonlot, azaz:

'/vegzet/,$d': ha a sorban van "vegzet" (/vegzet/,), akkor ettol a sortol
a fajl utolso soraig (,$) torold ki a sort (d).  Ami ha jol fogod meg a kezdet
es vegzet sztringet/mintat, pont a ket szovegresz kozti vackot adja.  Mivel
pedig a sed alapertelmezesben (-n opcio nelkul, lasd altalanosabb megoldas
elozo levelben) kiirja a megmaradt (es esetleg megvaltoztatott) sorokat, a
vegen kikopi a neked szuksegeseket.

ZGabor at CoDe dot HU

Ui: es most epp lathato az orosz gep
Ui2: valaki akinek drotja van! Nem akarja nekem letolteni es CD-re irni?
Tudom, hogy illegalis, ugyhogy csak olyantol kerem, akit ez nem zavar!

-- 
#!/bin/ksh
Z='21N16I25C25E30, 40M30E33E25T15U!' ;IFS=' ABCDEFGHIJKLMNOPQRSTUVWXYZ ';set $Z ;for i { [[ $i = ? ]]&&print $i&&break;[[ $i = ??? ]]&&j=$i&&i=${i%?};typeset -i40 i=8#$i;print -n ${i#???};[[ "$j" = ??? ]]&&print -n "${j#??} "&&j=;typeset +i i;};IFS=' 0123456789 ';set $Z;X=;for i { [[ $i = , ]]&&i=2;[[ $i = ?? ]]||typeset -l i;X="$X $i";typeset +l i;};print "$X"



További információk a(z) BSD levelezőlistáról