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 :

Faire un sed dans un awk


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut Faire un sed dans un awk
    Bonjour tout le monde,
    Je galère un max ainsi je viens en quête d'aide bienveillante...

    J'ai un fichier qui ressemble à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Fonction
    Fonction
    save_extra_interface_config()
    {
     
            assert_arguments device
     
            [ "$slave" ] && return
     
            ! is_ipv6 || warn "Extra interfaces not supported on IPv6" || return 0
     
            local dir="/tmp"
            rm -rf "$dir.backup" 2>/dev/null
            [ ! -d "$dir" ] || mv $dir $dir.backup
            mkdir -p  $dir || fail "Failed to create $dir"
     
            local scriptdir="/etc/sysconfig/network-scripts"
            local check_exceptions="false"
            if [ -e /opt/toto/ha/conf.d/network.conf ]; then
                    check_exceptions="true"
    for ifcfg in $scriptdir/ifcfg-e* $bondintf; do
                    local dev=${ifcfg#$scriptdir/ifcfg-}
                    local local_dev="false"
       }
     
    Other function
    Other function
    Other function
    restore_extra_interface_config()
    {
    for ifcfg in $scriptdir/ifcfg-e* $bondintf; do
     
    }
    Je cherche à remplacer le $scriptdir/ifcfg-e* $bondintf par toto (par exemple) de la fonction save_extra_interface_config (ligne 22 uniquement et pas la ligne 32)

    Voyez-vous comment faire cela svp ?

    Pour ma part, la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '/save_extra_interface_config\(\)/','/\}/' MonFichier
    Me retourne la fonction en entier

    La commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i -e 's/.*for ifcfg in \$scriptdir\/ifcfg-e\* \$bondintf; do.*/MonFichier/g'
    Fait le bon remplacement.

    Seulement, si je fais ce sed sur le fichier, il remplace tout. J'aimerais ainsi pouvoir faire ce sed sur le résultat de mon awk. Voyez-vous comment faire cela SVP ?

    D'avance, merci pour votre aide.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut


    sed aussi accepte les intervalles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i '/save_extra_interface_config\(\)/,/\}/ s/.*for ifcfg in \$scriptdir\/ifcfg-e\* \$bondintf; do.*/MonFichier/g' MonFichier
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut
    Bonjour !

    Cela marche parfaitement bien ! Merci beaucoup pour le tuyau et joyeux réveillon à vous !

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

Discussions similaires

  1. Comment faire des remplacements dans des fichiers (sed + regex)
    Par vinok972 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 04/12/2012, 12h50
  2. Faire defiler Texte dans un label
    Par Techsan dans le forum Composants VCL
    Réponses: 5
    Dernier message: 08/06/2003, 23h29
  3. [XSL]faire une balise dans une balise??? (ComboBox)
    Par rastoix dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/05/2003, 08h34
  4. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 18h26
  5. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

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