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

Shell et commandes GNU Discussion :

[sed] Modifier si la clé n'existe pas et une autre clé existe


Sujet :

Shell et commandes GNU

  1. #1
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut [sed] Modifier si la clé n'existe pas et une autre clé existe
    bonjour

    J'ai besoin de mettre à jour nom fichier grub.cfg pour avoir l'hibernation pour une autre distribution
    (dans fichier partiellement modifié à la main) la recherche par UUID de la distribution donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            linux /boot/vmlinuz-linux root=UUID=f1b0ad4b-3e89-49f1-ab76-afd63c078541 rw quiet
                    linux /boot/vmlinuz-linux root=UUID=f1b0ad4b-3e89-49f1-ab76-afd63c078541 rw quiet
                    linux /boot/vmlinuz-linux root=UUID=f1b0ad4b-3e89-49f1-ab76-afd63c078541 rw quiet
                    linux /boot/vmlinuz-linux root=UUID=f1b0ad4b-3e89-49f1-ab76-afd63c078541 rw quiet
                    linux /boot/vmlinuz-linux-lts root=UUID=f1b0ad4b-3e89-49f1-ab76-afd63c078541 rw quiet resume=UUID=76227d27-89ff-451d-b321-359bd30f36c1
                    linux /boot/vmlinuz-linux-lts root=UUID=f1b0ad4b-3e89-49f1-ab76-afd63c078541 rw quiet
    Il me faut donc trouver les lignes UUID (f1b0ad4b-*) qui ne contiennent pas le mot "resume"
    si trouvé, alors insérer un "resume=uuid_de_mon_swap" (comme ligne 5 ici)

    ps: SED ou autre (pas tout autres ! je sais bien faire en pure bash/python/... : copie du fichier, lire la copie ligne à ligne, modifier si match et sauver la ligne dans fichier grub.conf original est simple mais pas top)
    $moi= ( !== ) ? : ;

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    En simple via sed, si on trouve 'resume=', on passe à la ligne suivante et sinon, si on trouve ton pattern, on modifie la fin de ligne par le resume:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '/resume=/n;/f1b0ad4b-.*/s/$/ resume=UID=..../'
    Cordialement.

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    Parfait, merci !
    il faut bien ajouter UUID= dans la clé sinon il change aussi les menuentry (je n'avais pas précisé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '/resume=/n;/UUID=f1b0ad4b-.*/s/$/ resume=UID=..../' "$FICHIER"
    $moi= ( !== ) ? : ;

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Sinon tu peux aussi faire un écrabouillage systématique des lignes contenant déjà resume :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '/UUID=f1b0ad4b/s/ resume.*\|$/ resume=UUID=.../' fichier
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/11/2015, 16h15
  2. Trouver valeurs d'une table n'existant pas dans une autre table
    Par aliasjcdenton dans le forum Langage SQL
    Réponses: 7
    Dernier message: 13/10/2011, 10h41
  3. Objet existant reconnu dans une fonction mais pas dans une autre
    Par Jiyuu dans le forum Général Python
    Réponses: 0
    Dernier message: 20/09/2011, 18h19
  4. Réponses: 5
    Dernier message: 27/04/2010, 14h55
  5. Réponses: 2
    Dernier message: 29/09/2009, 15h33

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