[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