datei in einen array einlesen und verändert ausgeben

Post Reply
Message
Author
sourcehunter

datei in einen array einlesen und verändert ausgeben

#1 Post by sourcehunter »

hallo,

im mom suche ich noch vergebens nach einer lösung, wie ich eine datei in einen array einlese, danach eine bestimmte zeile (z.b. $file[36]) verändern kann und danach wieder zurück schreiben kann.


mfg sourcehunter

thorsten
Posts: 72
Joined: 23. Jan 2002 13:54

Re: datei in einen array einlesen und verändert ausgeben

#2 Post by thorsten »

In welcher Programmiersprache denn?

sourcehunter

Re: datei in einen array einlesen und verändert ausgeben

#3 Post by sourcehunter »

ups! vor lauter testerei usw habe ich des ganz vergessen anzugeben...

PERL ;)

Descartes

Re: datei in einen array einlesen und verändert ausgeben

#4 Post by Descartes »

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#!/usr/bin/perl -w

use strict;
use warnings;

open(PASSWD, "< /etc/passwd");
my @passwd=<PASSWD>;
close(PASSWD);

print "Zeile 3 enthaelt: $passwd<font size="3">";

# jetzt ersetzen wir "Printing Daemon" durch was anderes <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
$passwd<font size="3"> =~ s/Printing Daemon/Drucker Daemon/;

print "Zeile 3 enthaelt nach der Aenderung: $passwd<font size="3">";

__END__
</font><hr></pre></blockquote>

Descartes

Re: datei in einen array einlesen und verändert ausgeben

#5 Post by Descartes »

Ahhhh die eckigen Klammern wieder....ok zeit um noch ein/zwei Kommentare einzufügen...
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#!/usr/bin/perl -w

use strict;
use warnings;

# Datei /etc/passwd oeffnen und den Inhalt zeilenweise im Array "@passwd" abspeichern
open(PASSWD, "< /etc/passwd");
my @passwd=<PASSWD>;
close(PASSWD);

print "Zeile 3 enthaelt: $passwd[<!--no-->3<!--no-->]";

# zeile 3 aendern
# "Printing Daemon" durch was anderes anderes
$passwd[<!--no-->3<!--no-->] =~ s/Printing Daemon/Drucker Daemon/;

print "Zeile 3 enthaelt nach der Aenderung: $passwd[<!--no-->3<!--no-->]";

__END__
</font><hr></pre></blockquote>

Descartes

Re: datei in einen array einlesen und verändert ausgeben

#6 Post by Descartes »

wegen dem zurückschreiben:

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#!/usr/bin/perl -w

use strict;
use warnings;

open(PASSWD, "< /etc/passwd");
my @passwd=<PASSWD>;
close(PASSWD);

print "Zeile 3 enthaelt: $passwd[<!--no-->3<!--no-->]";

# jetzt ersetzen wir "Printing Daemon" durch was anderes <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
$passwd[<!--no-->3<!--no-->] =~ s/Printing Daemon/Drucker Daemon/;

print "Zeile 3 enthaelt nach der Aenderung: $passwd[<!--no-->3<!--no-->]";

open(KOPIE, "> ./passwd.kopie");
print KOPIE @passwd;
close(KOPIE);

__END__

=head1 NAME

file_in_array.pl - ein simples Beispiel

=head1 EXAMPLE

open(PASSWD, "< /etc/passwd");
@passwd = <PASSWD>;
close(PASSWD);
...
...irgendwelche Aenderungen...
...
open(PASSWD, "> /etc/passwd");
print PASSWD @passwd;
close(PASSWD);

=head1 DESCRIPTION

Programm liest eine Datei (hier: /etc/passwd) in ein Array ein. Anschliessend
wird eine bestimmte Zeile des Arrays geaendert und der Array-Inhalt wieder in
eine Datei (hier: ./etc/passwd.kopie) geschrieben.

=head1 AUTHOR

Descartes

=cut

</font><hr></pre></blockquote>

sourcehunter

Re: datei in einen array einlesen und verändert ausgeben

#7 Post by sourcehunter »

HEY, sau geil ;) THX!!!

So ähnlich hatte ich des auch einmal.... ;)
Endlich funzt des script!!!! thx

mfg sourcehunter

Post Reply