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 :

grep + sed + Trouver valeur IP dans une ligne specifique


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut grep + sed + Trouver valeur IP dans une ligne specifique
    Bonjour.
    J´ai un fichier "local" comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    RIGIN local.
    $TTL 86400
    local. IN SOA ns.local. mail.local. (
            1
    		43200
    		180
            1209600
            10800
    )
    		local.  NS      ns.local.
    ns.local.       A       192.168.1.111
    ns2.local.       A       192.168.1.112
    Je cherche avec sed juste a recuperer "192.168.1.111" de "ns.local."

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed  -n 's/^ns.local.* //p'  fichier

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Parfait! Merci beaucoup

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    @becket je pensais que c'etait bon mais non.
    Apparement i y a un probleme:
    si je fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/^ns.local.*/p' /volume1/etc/zone/master/local
    j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ns.local.       A       192.168.1.111
    Par contre ton code precedent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed  -n 's/^ns.local.* //p'  fichier
    Ne me renvoi plus rien.
    Peut etre une erreur de manip avant.
    Je depose mon fichier local :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ORIGIN local.
    $TTL 86400
    local. IN SOA ns.local. mail.local. (
        1
        43200
        180
        1209600
        10800
    )
    local.  NS  ns.local.
    ns.local.   A   192.168.1.111

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    J'ai essayer ceci mais est-ce que cela est bon a utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed  -n 's/^ns.local.[[:blank:]]A[[:blank:]]//p' local

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 280
    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 280
    Points : 12 729
    Points
    12 729
    Par défaut
    perso, à la place de [[:blank:]], j'utiliserais plus [[:space:]] ou mieux si ton sed le spupporte: \s .
    Cordialement.

  7. #7
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     sed  -n 's/^ns.local.[^1-9]*//p'

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par superthx Voir le message
    Apparement i y a un probleme:
    si je fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/^ns.local.*/p' /volume1/etc/zone/master/local
    j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ns.local.       A       192.168.1.111
    Par contre ton code precedent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed  -n 's/^ns.local.* //p'  fichier
    Ne me renvoi plus rien.
    C'est bizarre !

    Pour voir s'il y a des caractères bizarres (genre tabulations), peux-tu nous montrer le résultat de la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep '^ns.local' /volume1/etc/zone/master/local | cat -A

  9. #9
    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
    Citation Envoyé par jack-ft Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep '^ns.local' /volume1/etc/zone/master/local | cat -A
    Désolé de m'incruster, mais existe-t-il quelque part une table de correspondances (voire une formule) entre les caractères encodées en utf8 sur plusieurs octets et leur représentation ASCII par cat -A?
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  10. #10
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 280
    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 280
    Points : 12 729
    Points
    12 729
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Désolé de m'incruster, mais existe-t-il quelque part une table de correspondances (voire une formule) entre les caractères encodées en utf8 sur plusieurs octets et leur représentation ASCII par cat -A?
    Pas sur de comprendre la question, mais ta table de correspondance sera en fait le résultat de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in {0..255}; do printf -vj "%x" $i ; echo -e $i=$"\x$j"; done | cat -vT
    Cordialement.

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Désolé de m'incruster, mais existe-t-il quelque part une table de correspondances (voire une formule) entre les caractères encodées en utf8 sur plusieurs octets et leur représentation ASCII par cat -A?
    Pas sûr de comprendre la question...

    Il y a beaucoup de caractères encodées en utf8 sur plusieurs octets.

    Par exemple, le caractère 'é' (LATIN SMALL LETTER E WITH ACUTE) s'écrit comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ printf 'é' | od -bcx
    0000000   303 251                                                        
               é  **                                                        
                 a9c3                                                        
    0000002
     
    $ printf 'é' | iconv -f UTF-8 -t ISO_8859-1 | od -bcx
    0000000   351                                                            
             127                                                            
                 00e9                                                        
    0000001
    CONCLUSION:
    En unicode (utf-8), le 'e-acute' (é) est codé sur 2 bytes \303 \251 (en octal) ou C3 A9 (en hexa)
    En iso-8859-1 (latin-1), le 'e-acute' (é) est codé sur un byte \351 (en octal) ou E9 (en hexa)

    (Pour l'ordre des bytes, faut demander aux indiens s'ils sont petits ou grands)

Discussions similaires

  1. [MySQL-5.1] Afficher les valeurs répétés dans une ligne
    Par hichamus13 dans le forum Requêtes
    Réponses: 13
    Dernier message: 17/06/2021, 16h56
  2. Réponses: 18
    Dernier message: 31/07/2020, 10h34
  3. [Débutant] Trouver élement précis dans une ligne de text
    Par whatsup_morty dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/01/2016, 17h34
  4. Chercher une valeur particuliére dans une ligne
    Par AI_LINUX dans le forum Excel
    Réponses: 3
    Dernier message: 18/05/2015, 18h08
  5. Trouver la valeur la plus proche dans une ligne
    Par tavita987 dans le forum Excel
    Réponses: 5
    Dernier message: 05/02/2014, 11h12

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