ArmerIrrer
22.03.2006, 15:07
Moin Leute,
ich brauch mal kurz hilfe, und zwar brauche ich ein script das mir schnell große dateien durchsucht und dabei ein paar zeichen ersetzt. also dachte ich mir perl wäre die ideale wahl. Leider funzzt es nicht so wie ich mir das gedacht habe. aber hier erst mal das script:
$file = '/home/tt/bee/bee_demo_db/faktura3.sql';
$insertstring = "INSERT INTO `faktura` (`id`, `obchodnik_id`, `zakaznik_id_fakturujici`, `zakaznik_id_odebirajici`, `naklady_doprava`, `datum_id_dodani`, `datum_id_fakturace`, `datum_id_objednani`, `datum_id_platby`) VALUES (";
open(INFO, $file); # File öffnen
while ($lines = <INFO>){ # in Array einlesen
$lines =~ tr/[\(]/$insertstring/;
$lines =~ tr/\)\,/);/;
print INFO $lines;
}
close(INFO);
es soll jede öffnende klammer ("(") durch den $insertstring ersetzt werden, er findet die klammern auch richtig, allerdings wird immer nur ein buchstabe dafür eingesetzr (ein kleines i)
Außerdem soll jedes mal wenn ), auftritt statdessen ); eingesetzt werden. Die anderen auftretenden kommas sollen kommas bleiben. Funktioniert auch, leider ersetzt er die auch die kommas die nicht hinter einer klammer stehen (aber nur mit semikolon)
woran kann das liegen? Jemand ne idee?
ich brauch mal kurz hilfe, und zwar brauche ich ein script das mir schnell große dateien durchsucht und dabei ein paar zeichen ersetzt. also dachte ich mir perl wäre die ideale wahl. Leider funzzt es nicht so wie ich mir das gedacht habe. aber hier erst mal das script:
$file = '/home/tt/bee/bee_demo_db/faktura3.sql';
$insertstring = "INSERT INTO `faktura` (`id`, `obchodnik_id`, `zakaznik_id_fakturujici`, `zakaznik_id_odebirajici`, `naklady_doprava`, `datum_id_dodani`, `datum_id_fakturace`, `datum_id_objednani`, `datum_id_platby`) VALUES (";
open(INFO, $file); # File öffnen
while ($lines = <INFO>){ # in Array einlesen
$lines =~ tr/[\(]/$insertstring/;
$lines =~ tr/\)\,/);/;
print INFO $lines;
}
close(INFO);
es soll jede öffnende klammer ("(") durch den $insertstring ersetzt werden, er findet die klammern auch richtig, allerdings wird immer nur ein buchstabe dafür eingesetzr (ein kleines i)
Außerdem soll jedes mal wenn ), auftritt statdessen ); eingesetzt werden. Die anderen auftretenden kommas sollen kommas bleiben. Funktioniert auch, leider ersetzt er die auch die kommas die nicht hinter einer klammer stehen (aber nur mit semikolon)
woran kann das liegen? Jemand ne idee?