Partage
  • Partager sur Facebook
  • Partager sur Twitter

grep ne marche plus!

Sujet résolu
    4 mars 2015 à 10:24:39

    Bonjour à tous,

    Je suis entrain d'explorer un très gros fichier de log, donc je ne peux pas l'ouvrir avec Notepad. Habituellement, comme je suis sous Windows, je passe par Cygwin et fais ce que je veux en commandes Unix. Sauf que là, plus rien ne va!

    Ce fichier contient des "ERROR" parsemées un peu partout, et j'aimerai récupérer les lignes contenant cette chaîne de caractères, et les copier ailleurs. Pour moi, ça se fait avec cette commande :

    grep ERROR debug.txt>copie.txt

    Sauf que dans le fichier copie .txt, je ne retrouve que ça : "Fichier binaire debug.txt correspondant".

    Je m'en fiche bien, je le sais déjà! D'autant plus que grep est censé me donner les lignes que je recherche, pas seulement me dire qu'elles existent. Pourtant, ma commande est correcte, debug.txt existe, contient effectivement les chaînes de caractère recherchées. Comment faire pour que ça remarche?

    • Partager sur Facebook
    • Partager sur Twitter
      4 mars 2015 à 10:37:12

      Salut,

      Rajoute ça "--binary-files=text" comme argument.

      • Partager sur Facebook
      • Partager sur Twitter
        4 mars 2015 à 10:41:35

        Super, ça marche à nouveau! Merci.
        Mais pourquoi d'un coup, j'ai besoin de cet argument pour parcourir un fichier texte?
        • Partager sur Facebook
        • Partager sur Twitter
          4 mars 2015 à 11:40:58

          Bonjour,

          Sauf erreur, grep sort les "phrases" recherchées une par une, du coup, il fait une sortie à chaque fois.

          Le problème peut venir du signe de redirection que tu utilises.

          tu dis : 

          grep ERROR debug.txt>copie.txt

          Donc grep sort les phrases une par une et écrase le contenu de "copie.txt" à chaque fois.

          Essaye avec deux chevrons ">", comme ceci :

          grep ERROR debug.txt >> copie.txt

          Tu vas incrémenter ton fichier copie.txt et tes résultats ne seront plus écrasé :)

          Vu que je ne sais pas vraiment si grep fonctionne par "bloc" ou "phrase par phrase", la véracité de ma réponse repose la-dessus.

          Après, je ne sais pas vraiment si c'est pertinent pour toi maintenant.

          Cordialement

          -
          Edité par Tenebrum 4 mars 2015 à 11:41:34

          • Partager sur Facebook
          • Partager sur Twitter
          L'esprit n'avance que s'il a la patience de tourner en rond, c'est-à-dire d'approfondir.
            4 mars 2015 à 14:00:03

            En faite il doit avoir des données binaires dans ton fichier donc grep à arrêter de le lire.  L'option que je t'ai donnée permet de dire à grep de traiter les binaires comme des fichiers textes.
            • Partager sur Facebook
            • Partager sur Twitter
              4 mars 2015 à 14:49:16

              @tenebrum : ça marche avec un chevron simple, grep sort un bloc. Mais j'y penserai si jamais je suis confronté à un problème de ce type.

              @millman : mmmh... vu comme mon fichier de debug est généré, ça m'étonne que du binaire se retrouve dedans. D'habitude, ce n'est que du texte pur. Mais parmi plusieurs centaines de Mo de texte, c'est pas exclu qu'il y ai eu une merdouille pendant son écriture. C'est bon à savoir, merci!

              • Partager sur Facebook
              • Partager sur Twitter

              grep ne marche plus!

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown