IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation et administration système Perl Discussion :

Encore les fichiers


Sujet :

Programmation et administration système Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Encore les fichiers
    Bonjour,

    Je début en perl (1semaine) et je cherche à modifier un ficher "à la volée".

    Je m’explique, modifier le nom de mes LVM dans un fstab sans utiliser l'opérateur ">" car si la machine plante ou s'il y a une coupure de courant je suis dans la mouise. Du il faut que j'utilise "+<"(je suppose) mais je ne comprends pas comment l'utiliser. Pour le moment j'utilise "sed (sed -i 's/nom/nouveauNom/g' $file", mais comme j'apprends, j'aimerai vraiment tous faire en perl.

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my @previousName = qw (LVroot LVtoto LVtiti);
    my $newName;
    foreach (@previousNameLV){
        $newName = join('V_',split(/V/,$_));
        `sed -i 's/$_/$newName/g' $fstab`;
        `sed -i 's/$_/$newName/g' $grub`;
        `lvrename $vg$_ $vg$newName`;
        $LVname .= $newName."\n";
    }
    Pour info j'utilise le tableau comme ci dessous avec d'autre traitement, ce qui permet d'incrémenter tous ce que je voudrais modifier et ainsi ne rien oublier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @pathLV = grep(/LV[a-z]/,`df`);
    Je pinaille mais j'ai vraiment envie d'aller au fond des choses.

    UN GRAND MERCI D'AVANCE

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    En principe, il n'est pas possible de lire et d'écrire dans le même fichier (il y a des exceptions et des moyens de contournement, mais bon...). La solution fiable consiste plutôt à renommer ton fichier en entrée, ouvrir en écriture un nouveau fichier ayant le nom d'origine de ton fichier, lire ton fichier d'origine et écrire dans le nouveau fichier (puis faire le ménage quand tu es sûr que tout s'est bien passé).

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci, je vais donc pour le moment continuer avec sed. Après tous ça se marie bien

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Pourquoi pas si ça marche bien, mais je voudrais ajouter qu'il existe un mode "script uniligne" de Perl permettant de faire tout cela de façon transparente. Par exemple, le script uniligne Perl suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -i.bak -pe 's/toto/titi/g' fichier_entree.txt
    remplacera toutes les occurrences de toto par titi dans le fichier fichier_entree.txt et sauverardera le fichier d'origine dans fichier_entree.txt.bak.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Lister les fichier d'un répertoire qui n'ont pas encore été listés
    Par QuestVba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/10/2014, 10h03
  2. Réponses: 4
    Dernier message: 19/03/2013, 17h53
  3. Encore une question sur les fichiers midi
    Par m14w dans le forum Delphi
    Réponses: 1
    Dernier message: 07/05/2007, 22h51
  4. [SQL] Pourquoi utilise-t-on encore les fichiers texte?
    Par krimback dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 24/03/2006, 13h44
  5. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo