Awk/shell Petit controle sur un fichier txt

Résolu
titexe Messages postés 55 Statut Membre -  
titexe Messages postés 55 Statut Membre -
Bonjour,

je voudrais faire un petit controle sur un fichier qui contient une ligne qui commence par un @ et une autre ligne qui commence par un &,

je voudrais faire un script ou une commande qui vérifie ce fichier , qu'il doit contenir qu'un seule ligne qui commence par @ et une autre ligne qui commence par un & ,

si plus afficher une erreur de type echo "message d'erreur ",

ex fichier :

@|||||||||
&|||||||||

Merci d'avance , de m'aider a résoudre ce probléme,

Cordialement ,

et Merci encore une fois !!!
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. titexe Messages postés 55 Statut Membre 1
     
    je veux rajouter un controle de plus sur ce fichier la qui contient dans sa premiére ligne @||||||||||| et &|||||||| dans sa dérniere ligne,

    le controle : vérifier est ce que vraiment le fichier structuré de cette maniére @||||| en 1 ere ligne et &||||| dans la derniére ligne?

    Merci de m'aider a faire ce controle , merci d'avance a tous les modérateurs de ccm,

    Cordialement,
    1
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Est-ce que le nombre de pipe ( | ) derrière l'@ et l'& doit être pris en compte ?
      0
      1. titexe Messages postés 55 Statut Membre 1 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        non , juste la 1ere ligne doit commencer par un @ et la derniére par &, le nombre de pipes n est pas importants ?

        le fichier ne doit pas avoir une autre ligne qui commence soit avec @ou & !!!

        Merci
        0
      2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        head -1 fich | grep '^@' && tail -1 fich | grep '^&' && echo OK || echo NOK
        ;-))
        0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    #! /bin/bash
    # Usage mon_script.sh fichier
    
    count_1=$(egrep '^@' "$1" | sed -n '$=')
    count_2=$(egrep '^&' "$1" | sed -n '$=')
    
    if [ "$count_1" == 1 -a "$count_2" == 1 ]
    then
    echo "OK"
    else
    echo "Pas OK"
    fi
    ;-)
    0
    1. titexe Messages postés 55 Statut Membre 1
       
      re,

      merci beaucoup pour votre réactivité ,

      je trouve pas les mots , que te remercier encore une fois !!!!

      une question : ca existe "egrep" ? ;-)

      -a c'est la condition et , n est ce pas ?

      Merci encore une fois !!
      0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    une question : ca existe "egrep" ? ;-)
    Ou "grep -E" si tu préfères ;-))

    -a c'est la condition et , n est ce pas ?
    Oui c'est l'équivalent du "ET" ("-o" pour le "OU").
    0
    1. titexe Messages postés 55 Statut Membre 1
       
      Merci beaucoup,

      Je trouve rien à dire, je suis vraiment ému,

      Vive CCM ;-)
      0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    en fait il faut voir la définition de grep et egrep

    GlobalRegularExpressionPrint
    ExtendedGlobalRegularExpressionPrint

    et comme l'a bien précisé jipicy grep -E c'est pour permettre à grep de réagir comme egrep mais ce n'est pas la même comme chose comme Vim n'est pas la même chose que Vi
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. titexe Messages postés 55 Statut Membre 1
     
    c'est OK , Merci beaucoup
    0