[Unix] Majuscules et minuscules

Résolu
Trezeg Messages postés 81 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour

Lors de recherche dans des fichiers logs (plus de 50 fichiers de plusieurs milliers de lignes), j'exécute la commande ci-dessous (-i pour 'ignore case'):
grep -i Tahoma *
grep -i KNV *
Mais parfois j'obtiens l'erreur suivante :
grep: Maximum line length of 2048 exceeded.
Pour remédier à ce problème j'utilise awk :
awk  '/Tahoma/' * 
awk  '/KNV/' *
Mais je ne sais pas comment utiliser l'option 'ignore case' avec awk ?

Est-ce que quelqu'un aurait une idée ?

D'avance merci.

Trez
Configuration: SunOS 5.8

10 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Si tu as "gawk" (awk --version) :
    awk 'BEGIN {IGNORECASE=1;} /motif/ {print $0}'
    ;-))
    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Le problème c'est le nombre de fichiers, utiliser xargs
    ls | xargs grep -i XXX
    0
  3. Trezeg Messages postés 81 Statut Membre 2
     
    Merci jipicy mais ca semble coincer quelque part :
    J'ai créé un répertoire chemin dans lequel il y a un fichier nommé monLog.
    $more monLog
    errOr
    ErroR
    error
    tests
    eRRor
    Et quand je lance la commande
    awk 'BEGIN {IGNORECASE=1;} /error/ {print $0}'
    le système semble se figer...
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    awk 'BEGIN {IGNORECASE=1;} /error/ {print $0}' < monLog
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Merci ;-)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Trezeg Messages postés 81 Statut Membre 2
     
    Merci mais j'obtiens le meme résultat alors que je change la valeur de l'IGNORECASE...
    $awk 'BEGIN {IGNORECASE=1;} /error/ {print $0}' < monLog
    error
    $ awk 'BEGIN {IGNORECASE=0;} /error/ {print $0}' < monLog
    error
    $
    Est-ce normal ?

    Trez
    0
  7. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Non !
    [jp@MDK repertoire]$ cat toto
    errOr
    ErroR
    error
    tests
    eRRor
    
    [jp@MDK repertoire]$ awk 'BEGIN {IGNORECASE=1;} /error/ {print $0}' toto
    errOr
    ErroR
    error
    eRRor
    
    [jp@MDK repertoire]$ awk 'BEGIN {IGNORECASE=0;} /error/ {print $0}' toto
    error
    [jp@MDK repertoire]$
    C'est quelle version de "awk" que tu as ? (awk --version | head -1 )

    ;-)
    0
  8. Trezeg Messages postés 81 Statut Membre 2
     
    Je ne sais pas car meme cette commande fige le systeme...lol
    Pour info, je suis en Sun OS 5.8 et je n'ai pas gawk. Il y aurait-il une solution alternative ?

    Merci
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Je ne pense pas pour les versions antérieures de "awk".

      Par contre essaie la solution donnée par "dubcek" au post #2.
      0
  9. Trezeg Messages postés 81 Statut Membre 2
     
    Oupss, j'avais pa vu le post de dubcek...
    Ca marche nickel.
    Merci à tous et bon (long) weekend

    Trez
    0
  10. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Avec Solaris, il faut utiliser nawk (new awk)
    0
  11. Un passant
     
    Quel est l'intérêt de xargs ici par rapport à un pipe tout court ?
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      http://www.commentcamarche.net/faq/sujet 625 suppression impossible liste d arguments trop longue
      0