[Unix] Majuscules et minuscules

Résolu
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. Modérateur
    Salut,

    Si tu as "gawk" (awk --version) :
    awk 'BEGIN {IGNORECASE=1;} /motif/ {print $0}'
    ;-))
    0
    1. Contributeur
      Le problème c'est le nombre de fichiers, utiliser xargs
      ls | xargs grep -i XXX
      0
      1. 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
        1. Contributeur
          awk 'BEGIN {IGNORECASE=1;} /error/ {print $0}' < monLog
          0
          1. Modérateur
            Merci ;-)
            0
        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
          1. Modérateur
            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
            1. 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. Modérateur
                Je ne pense pas pour les versions antérieures de "awk".

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

              Trez
              0
              1. Contributeur
                Avec Solaris, il faut utiliser nawk (new awk)
                0
                1. Quel est l'intérêt de xargs ici par rapport à un pipe tout court ?
                  0
                  1. Modérateur
                    http://www.commentcamarche.net/faq/sujet 625 suppression impossible liste d arguments trop longue
                    0