/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
FÃ¥ en delstreng ud af en streng
Fra : Lars Stokholm


Dato : 31-08-10 14:54

Hvilket værktøj skal jeg bruge til denne opgave?

Jeg skal have have hevet strengen "billede.jpg" ud af dette:
<img src="billede.jpg" width="400" height="400" alt="foobar">

Er det awk og i så fald hvordan? Jeg vil helst ikke bruge cut, i
tilfælde af, at der nu bliver flyttet rundt på elementerne.

Problemet er selvsagt at navnet "billede.jpg" ændrer sig.

 
 
Martin Larsen (31-08-2010)
Kommentar
Fra : Martin Larsen


Dato : 31-08-10 16:07

Lars Stokholm wrote:

> Er det awk og i så fald hvordan? Jeg vil helst ikke bruge cut, i
> tilfælde af, at der nu bliver flyttet rundt på elementerne.

Der er sikkert mange muligheder, men i awk fx:

cat fil | awk 'match($0, "<img src=\"([^\"]*)\"[^>]*>", a) { print a[1] }'

Hilsen
Martin

Martin Larsen (31-08-2010)
Kommentar
Fra : Martin Larsen


Dato : 31-08-10 16:24

Martin Larsen wrote:

> cat fil | awk 'match($0, "<img src=\"([^\"]*)\"[^>]*>", a) { print a[1] }'

Denne udgave er mere fejltolerant overfor ombyttede elementer:

cat fil | awk 'match($0, "<img[^>]*src=\"([^\"]*)\"[^>]*>", a) { print
a[1] }'

Adam Sjøgren (31-08-2010)
Kommentar
Fra : Adam Sjøgren


Dato : 31-08-10 22:03

On Tue, 31 Aug 2010 15:53:42 +0200, Lars wrote:

> Hvilket værktøj skal jeg bruge til denne opgave?

Det rigtige er nok at bruge en HTML-parser til hele dokumentet, men:

> Jeg skal have have hevet strengen "billede.jpg" ud af dette:
> <img src="billede.jpg" width="400" height="400" alt="foobar">

> Er det awk og i så fald hvordan? Jeg vil helst ikke bruge cut, i
> tilfælde af, at der nu bliver flyttet rundt på elementerne.

Perl er jo altid en mulighed:

$ echo '<img src="billede.jpg" width="400" height="400" alt="foobar">' > hep.txt
$ perl -nE "say \$1 while m/src=['\"]([^'\"]+)/g" hep.txt
billede.jpg
$ echo '<img src="hep.jpg">' >> hep.txt
$ perl -nE "say \$1 while m/src=['\"]([^'\"]+)/g" hep.txt
billede.jpg
hep.jpg
$


Mvh.

--
"Didn't matter to me what I said. Still doesn't, Adam Sjøgren
really." asjo@koldfront.dk

Nelly (17-09-2010)
Kommentar
Fra : Nelly


Dato : 17-09-10 05:02

On 31 Aug., 15:53, Lars Stokholm <lars.stokh...@gmail.com> wrote:
> Hvilket værktøj skal jeg bruge til denne opgave?
>
> Jeg skal have have hevet strengen "billede.jpg" ud af dette:
> <img src="billede.jpg" width="400" height="400" alt="foobar">
>
> Er det awk og i så fald hvordan? Jeg vil helst ikke bruge cut, i
> tilfælde af, at der nu bliver flyttet rundt på elementerne.
>
> Problemet er selvsagt at navnet "billede.jpg" ændrer sig.

sed er også en mulighed:

cat file |grep "\<img"|sed -e 's/"/\n/g'|grep .jpg
jhp

Søg
Reklame
Statistik
Spørgsmål : 177547
Tips : 31968
Nyheder : 719565
Indlæg : 6408797
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste