• # foo

    Posté par . En réponse au message Remplacer des lignes dans un fichier. Évalué à 5.

    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.

    -=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=--
    #!/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);
    }
    -=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=--