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 POSIX Discussion :

commande awk geste de l 'apostrophe (')


Sujet :

Shell et commandes POSIX

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 44
    Points : 34
    Points
    34
    Par défaut commande awk geste de l 'apostrophe (')
    Bonjour ,

    Voici l'erreur à laquelle je suis confronté , dans ma commande awk je souhaite supprimer toutes les lignes qui contiennent un caractère non autorise dans ma liste

    Seulement l 'apostrophe est mal gérée , j 'ai l 'erreur suivante :

    syntax error at line 3 : ``' unmatched

    J'ai essayé de l 'entourée des caractères suivants : " et ` mais c 'est toujours mal interprété

    voici mon ksh :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    awk '{
     
                    if (match($0,"[^0-9a-zA-Z .%*'/-&@]") > 0)
                    {
                                    cpt=cpt + 1
                                    print $0
                    }
     
     
    }
     
    END             {
                            print cpt
                    }' $1
    Comment je peux le gérer !

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Voilà une façon de contourner ce problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    awk '{
      if (match($0,"[^0-9a-zA-Z .%*'\''/-&@]") > 0)
      {
        cpt=cpt + 1
        print $0
      }
    }
     
    END {
      print cpt
    }' $1
    ɹǝsn *sıɹɐlos*

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Bonjour,

    il faut remplacer l'apostrophe par sa valeur octale : \047.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    il faut remplacer l'apostrophe par sa valeur octale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s/il faut/on peut aussi/
    :-)
    ɹǝsn *sıɹɐlos*

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    ou encore, utiliser une variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    awk -v apo="'" '{
      if (match($0,"[^0-9a-zA-Z .%*"apo"-&@]") > 0)
    ...
    PS: j'avais commencé à répondre avant que jlliagre ait publié son message : grilled !
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Option NR de la commande AWK
    Par tux2005 dans le forum Linux
    Réponses: 5
    Dernier message: 20/09/2010, 14h25
  2. Commande awk fonction gsub
    Par vbcasimir dans le forum Linux
    Réponses: 1
    Dernier message: 29/05/2006, 11h12
  3. Questions sur la commande awk
    Par vbcasimir dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 17/01/2006, 10h35
  4. Commande awk
    Par ujoodha dans le forum Linux
    Réponses: 1
    Dernier message: 01/12/2005, 14h34
  5. Réponses: 11
    Dernier message: 12/04/2005, 14h08

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