Bash fileban keresés

Sziasztok!

Előre szólok, nem vagyok valami nagy szkriptelő, csak nemrég kezdtem.
Bash-ben szeretném egy fájlból kiszedni a $START és $END közötti stringeket(ezek a stringek egyébként minden esetben számok).
Itt egy példafájl: http://pastebin.com/7kBpyAcP
...nowrap align="left">Színes1030< t ...
Legyen mondjuk $START="Színes" és $END="<" nekem a hasznos infó a 1030.

Jelenleg így szedem ki: EREDMENY=`sed -n "1,/$START/!{ /$END/,/$START/!p; }" in.tmp` de ez csak akkor működik ha csak egyszer szerepel a $START az in.tmp-ben, hogyan kéne csináljam, hogy ki szedjem az összes előfordulását $START*$END egy tömbbe vagy fájlba.

szerk: párszor beleszerkesztettem, mert a < code > valamiért nem akart működni.

Hozzászólások

A sed azért nem annyira jó ebben az esetben, mivel alapvetően sorokon dolgozik, és szerintem te egy kicsit mást akarsz. Tehát neked a "Színes1030"-ból csak az 1030 kellene.
Én inkább egy egyszerű grep-pel kezdenék:

$ grep -o "Színes[0-9]*" raw.php            
Színes1030
Színes19949
Színes84
Színes84

Ha csak a számok érdekelnek:

$ grep -o "Színes[0-9]*" raw.php | sed "s@Színes@@"
1030
19949
84
84

Az első lépést szerintem egyszerűbb grep-pel megcsinálni, mint sed-nek mindenféle bűvös parancsokat adogatni.

Csak a jegyzőkönyv kedvéért egy gawk-specifikus megoldás:


gawk -vRS='Színes[0-9]+' '{print substr(RT,7)}'