1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#!/usr/bin/perl -w $quelle = "photo123.html"; $ziel = "photo.txt"; open(FHquelle, "< $quelle") or die "\nKonnte die Datei $quelle nicht zum Lesen öffen\n"; open(FHziel, "> $ziel") or die "\n Konnte die Datei $ziel nicht zum Schreiben öffnen bzw. erzeugen\n"; { local $/ = "\n"; while(<FHquelle>){ #Lesen aus der Quelle print FHziel $_ if $. == 28; #Zeile 28 in Zieldatei schreiben } } close(FHquelle); close(FHziel);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
#!/usr/bin/perl use strict; use warnings; #my $quelle = "photo123.html"; my $ziel = "photo.txt"; open(my $FHziel, ">", $ziel) or die "\n Konnte die Datei $ziel nicht zum Schreiben öffnen bzw. erzeugen\n"; opendir my $DH, "." or die $!; for my $quelle (readdir $DH) { next unless $quelle =~ /\.html?$/i; # nur html-Dateien auswerten open(my $FHquelle, "<", $quelle) or die "\nKonnte die Datei $quelle nicht zum Lesen öffen\n"; { local $/ = "\n"; # Ist das wirklich erforderlich? while(<$FHquelle>){ #Lesen aus der Quelle print $FHziel $_ if $. == 28; #Zeile 28 in Zieldatei schreiben } } close($FHquelle); } close($FHziel);
1
2
3
4
5
6
7
8
<Zeile aus Datei 004>
<Zeile aus Datei 005>
<Zeile aus Datei 006>
<Zeile aus Datei 007>
<Zeile aus Datei 001>
<Zeile aus Datei 002>
<Zeile aus Datei 003>
<img border="0" src="../img_big/photo581_big.JPG" alt="München, Augsburg, B2, Franz jagt im komplett verwahrlosten Taxi quer durch Bayern, September 2012" title="München, Augsburg, B2, Franz jagt im komplett verwahrlosten Taxi quer durch Bayern, September 2012">
"photo581_big.JPG";"München, Augsburg, B2, Franz jagt im komplett verwahrlosten Taxi quer durch Bayern, September 2012";"München, Augsburg, B2, Franz jagt im komplett verwahrlosten Taxi quer durch Bayern, September 2012"
2013-12-05T17:25:25 binseDer Html-Code in den vielen Html-Dateien ist valide und mit einem Programm erzeugt.
Es ist immer alles am selben Platz. Da war ich sehr penibel.
Hier die Zeile 28 aus dem Html-Code:
Code: (dl )<img border="0" src="../img_big/photo581_big.JPG" alt="München, Augsburg, B2, Franz jagt im komplett verwahrlosten Taxi quer durch Bayern, September 2012" title="München, Augsburg, B2, Franz jagt im komplett verwahrlosten Taxi quer durch Bayern, September 2012">
Ich brauche den Dateinamen, alt= und title= in diesem Format:
Code: (dl )"photo581_big.JPG";"München, Augsburg, B2, Franz jagt im komplett verwahrlosten Taxi quer durch Bayern, September 2012";"München, Augsburg, B2, Franz jagt im komplett verwahrlosten Taxi quer durch Bayern, September 2012"
1 2 3
$line =~ m:\<img.+src=".+/(.*\.JPG)".+alt=("[^"]*").+title=("[^"]*"):; my ($src, $alt, $title) = ($1,$2;$3); my $result = sprinf('"%s";%s;%s', $src, $alt, $title);
2013-12-06T10:02:00 binseHallo clms, danke soweit. Aber wo setze ich das ein, oder ist das schon stand alone? Ich muss doch sicher $line und $result zuweisen, aber wie und zu was? Sorry, aber bin heut nicht so fit. Irgendwie versteh ich deine Zeilen schon, weiß aber nichts mit anzufangen.
2013-12-06T10:02:00 binseEs ist ein kleiner Fehler drin, ein Semikolon statt ein Komma in Zeile 2 an der Stelle 33?
2013-12-06T10:02:00 binseDie Attribute stehen immer an der gleichen Stelle und in der gleichen Zeile. Ist von Maschine gemacht, nicht von Hand. ;)
1 2
$line =~ m:\<img.+src=".+/(.*\.JPG)".+alt=("[^"]*").+title=("[^"]*"): or die "Zeile '$line' hat nicht das erwartete Format";
1 2 3
while (<$FHquelle>) { next unless $. == 28; print $FHziel if s/^.+src=".+\/([^"]+)".+alt="([^"]+)".+title="([^"]+)".+$/"$1";"$2";"$3"\n/;
2013-12-05T09:50:37 binseHallo clms, das ist ja ein hartes Brot. Hm. Ich dachte das mir eventuell jemand schon vorhandene Skripts oder Skriptschnipsel zeigen kann, womit ich das lösen kann.
2013-12-05T09:50:37 binseDanke dennoch. Mit den Links kann ich allerdings nichts anfangen wegen fehlendem Englisch.
2013-12-05T09:50:37 binseHabe die Aufgabe nochmal überdacht. Ganz simpel reicht es mir, wenn aus den Html Dateien in einem Ordner eine bestimmte Zeile ausgelesen und in eine Datei in diesen Ordner in dem sich die Html Dateien befinden untereinander geschrieben werden. Den Rest kann ich dann in einem Editor per Suchen/Ersetzen erledigen.
1 2
open(my $FHziel, ">", $ziel) or die "Konnte die Datei $ziel nicht zum Schreiben öffnen bzw. erzeugen: $!";