#!/usr/bin/perl use warnings; use strict; my $i = 0; my $split = '@@'; open IN, 'wuw_gesamt.txt' or die "ERROR!\n"; open OUT, '> Dateien/Eintrag_0.txt' or die "ERROR!\n"; while () { # Die Zeile "Jahrgang, Seite" in "Jahrgang" und "Seite" trennen # if (m/^Jahrgang, Seite\s*\[\s*(\d{4}),\s+(\d+)\s\]\s*$/){ print OUT "Jahrgang [ $1 ]\nSeite [ $2 ]\n"; } # Die Zeile "Datum/Aktenz." in "Tag", "Monat", "Jahr" und "Aktenzeichen" trennen # elsif (m/^Datum.Aktenz.\s*\[\s*(\d*).(\d*).(\d{4})\s(.*)\s\]\s*$/){ print OUT "Tag [ $1 ]\nMonat [ $2 ]\nJahr [ $3 ]\nAktenzeichen [$4 ]\n"; } # Die Zeile "Abteilung" in "Abteilung" und "Abteilungsnummer" trennen # elsif (m/^Abteilung\s*\[\s*(.*)\s(\d*)\s\]\s(.*)$/){ print OUT "Abteilung [ $1 ]\nAbteilungsnummer [ $2 ]"; } # Die Zeile "Schlagworte" trennen # elsif (m/^Schlagworte\s*\[\s*(.*)\s*\]$/){ my @tags = split /, /, $1; for my $counter ( 1 .. @tags ) { print OUT sprintf "Schlagwort %2s [ %s ]\n", $counter, $tags[$counter-1]; } } # Die Zeile "Vorschriften" trennen # elsif (m/^Vorschriften\s*\[\s*(.*)\s*\]$/){ my @tags = split /; /, $1; for my $counter ( 1 .. @tags ) { print OUT sprintf "Vorschrift %2s [ %s ]\n", $counter, $tags[$counter-1]; } } # Zeilen, die nicht getrennt werden, wie bisher ausgeben # else{ print OUT $_; } # An der Stelle "@@" die einzelnen Einträge trennen # if (/^(.*?)$split(.*)$/){ close OUT; $i++; open OUT, '> Dateien/Eintrag_' . $i . '.txt' or die "ERROR!\n"; print OUT $2; } } close IN; print "\n$i Dateien wurden erfolgreich erstellt.\n";