[FreeBSD] sed

Zahemszky Gábor Gabor at Zahemszky.HU
2002. Júl. 22., H, 17:01:31 CEST


On Mon, Jul 22, 2002 at 03:41:27PM +0200, Gabor.Zelenak at hungarocontrol.hu wrote:
> hi,
> 
> sed 's/^\(.\)\(.^\)$\{0\}/\1/'
> 
> kinagyitva...
> 
> .. | sed ' s / ^ \ ( . \ ) \ ( . ^ \ ) $ \ { 0 \ } / \ 1 / ' 

Eloszor bocsanatot akartam kerni, amiert elgepeltem, de kerj bocsanatot Te!
Elmagyaraznad?

> .. | sed ' s / ^

soreleje - ertem

> .. | sed ' s / ^ \ ( . \ )

megjegyezzuk az elso karaktert a sor elejen - ezt is ertem

> .. | sed ' s / ^ \ ( . \ ) \ ( . ^ \ )

a megjegyzett sor eleji elso karakter utan megjegyezzuk a kovetkezo,
( <tetszoleges karakter> utana egy ^ ) kombinaciot - NEM ertem, mi van, ha
nem igy nez ki?

> .. | sed ' s / ^ \ ( . \ ) \ ( . ^ \ ) $

mivel minta _kozben_, es nem a _vegen_ vagyunk, ez egy kozonseges $-jel -
megint NEM ertem, mert mi van, ha nincs a szovegben

> .. | sed ' s / ^ \ ( . \ ) \ ( . ^ \ ) $ \ { 0 \ } /

a $-jel kotelezoen, es pontosan 0-szor szerepel, es lezarjuk a mintat.
- ertem, bar nekem egyszerubbnek tunik nem leirni a $-t, mint ezzel az
eszement modszerrel jelezni, hogy nincs :-)

> .. | sed ' s / ^ \ ( . \ ) \ ( . ^ \ ) $ \ { 0 \ } / \ 1 / ' 

Keszen vagyunk, kicsereljuk az izet a megjegyzett elso mintara illeszkedore,
ami az elso karakter volt.

> .. | sed ' s / ^ \ ( . \ ) \ ( . ^ \ ) $ \ { 0 \ } / \ 1 / ' 

Nem kotekedni, hanem tanulni akarok: en ezt most az aktualisan rendelkezesemre
allo FreeBSD-4.6R-en kiprobaltam, az alapban adott sh-ban, az alap sed-del,
es baromira nem jott ossze.  Neked ez melyik sed-del, milyen oprenceren
adja a kivant eredmenyt?

Ime a log:
$ echo 12345 |sed 's/^\(.\)\(.^\)$\{0\}/\1/'
12345
$ 

Zahy < Gabor at Zahemszky dot HU >

Ui: Legnagyobb sajnalatomra reggel egy hetig eltunok gepkozelbol, ugyhogy
a keson jovo anyazasokra majd csak a jovo heten tudok valaszolni :-))

-- 
#!/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;for i { [[ $i = , ]]&&i=2;[[ $i = ?? ]]||typeset -l i;j="$j $i";typeset +l i;};print "$j"



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