Hallo Perler,
ja ich bins mal wieder....;)
Habe nun ein Finales Problem:
und zwar sollte ich ja ein Skript schreiben, welches mir eine Datei kwasie "aktualisiert". Bei dem jetztigen Stand ist das so , dass ich meine alte Datei habe, meine Datei aus der ich die zu aktualisierenden Daten her bekomme und eine Ausgabe Datei.
Was ich nun aber Realisieren soll ist , dass meine alte Datei überschrieben wird. Es soll aber nicht alles überschrieben werden sondern nur dass was zwischen den Trennzeichen#-------- steht.
Mein Problem ist jetzt wenn ich anstatt meiner out Datei meine Parm datei setze schreibt der mir nichts mehr in die Parm Datei rein.
Deshlab meine frage wie ich das am besten ändere....
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/perl
use Getopt::Long;
use Sys::Hostname;
GetOptions
(
'h' => \my $help,
);
if ( $help )
{
print "Hilfetext einfügen\n";
exit;
}
$hostname = hostname();
$datei_passwd= "/home/user/db_project/passwd";
$datei_parm= "/home/user/db_project/parm.test";
$datei_test= "/home/user/db_project/testdatei.txt";
open(Passwd, "<$datei_passwd") || die "Datei $datei_passwd nicht vorhanden!\n";
open(Parm,"+>$datei_parm") || die "Datei $datei_parm nicht vorhanden!\n";
open (out,">>$datei_test");
$flag = 0;
$i = 0;
print "Hostname: $hostname\n";
while ($zeile = <Parm>)
{
chomp($zeile);
if (($zeile eq "#----------") and ($flag == 0))
{
$flag = 1;
print parm "$zeile\n";
print parm "\n";
while ($zeile = <Passwd>)
{
if ($zeile =~ /^ora/)
{
($array[$i]) = split (/:/, $zeile);
print parm "application = ". uc(substr($array[0],3,5)). "\n"."user = ".$array[0]." \n";
print parm "\n";
}
}
next;
}
if (($zeile eq "#----------") and ($flag == 1))
{
$flag = 0;
}
if ($flag == 0)
{
print parm "$zeile\n";
}