Bon j'ai peut-être été un poil trop loin mais le programme suivant devrait faire ton affaire. D'autre part, je te suggèrerais de faire cela sur le logout de tes users plutôt qu'en cron : moins bourrin et plus propre.
sub get_new_line {
my ($user) = @_;
open F, '/tmp/foo2';
while () {
if (/^\Q$user:/) {
return $_;
}
}
return undef;
}
sub subst_new_line {
my ($user, $new_line) = @_;
my $file = '/tmp/foo1';
if (-s $file) {
local @ARGV = $file;
local $^I = '';
local $_;
while (<>) {
if (/^\Q$user:/) {
$_ = $new_line;
}
print;
}
}
}
my $new_line = get_new_line('bar');
if (defined($new_line)) {
subst_new_line('bar', $new_line);
}
-=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=--
# foo
Posté par gc . En réponse au message Remplacer des lignes dans un fichier. Évalué à 5.
-=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=--
#!/usr/bin/perl
sub get_new_line {
my ($user) = @_;
open F, '/tmp/foo2';
while () {
if (/^\Q$user:/) {
return $_;
}
}
return undef;
}
sub subst_new_line {
my ($user, $new_line) = @_;
my $file = '/tmp/foo1';
if (-s $file) {
local @ARGV = $file;
local $^I = '';
local $_;
while (<>) {
if (/^\Q$user:/) {
$_ = $new_line;
}
print;
}
}
}
my $new_line = get_new_line('bar');
if (defined($new_line)) {
subst_new_line('bar', $new_line);
}
-=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=--