Friday, 13 January 2017

Linux Grep No Binaires Option

La page de manuel de grep décrit l'indicateur - I comme suit: - I Ignore les fichiers binaires. Cette option est équivalente à l'option - binary-filewithout-match. Il indique également ceci à propos des fichiers binaires: --binary-filesvalue Contrôle la recherche et l'impression de fichiers binaires. Les options sont binaire, la valeur par défaut: recherche les fichiers binaires, mais ne les imprime pas sans correspondance: ne recherchez pas les fichiers binaires et le texte: traiter tous les fichiers en tant que texte. Je ne peux pas penser à un scénario où je me soucier des correspondances dans les fichiers binaires. Si tel est le cas, c'est sûrement l'exception plutôt que la norme. Pourquoi ne pas grep ignorer les fichiers binaires par défaut plutôt que d'exiger le réglage de ce drapeau pour le faire demandé Mar 28 13 à 15:58 Cela peut en fait être très utile. Par exemple, je recherchais la version d'unité d'un projet et je ne pouvais pas me souvenir du fichier dans lequel il était conservé. J'ai cherché le format de la version et j'ai trouvé des fichiers binaires qui correspondent. Il s'est avéré qu'il était pré-version 5, la version était seulement présente dans un fichier binaire, donc sans le match binaire, je l'aurais peut-être manqué. Ndash Svend Hansen Feb 2 at 9:17 Pas tout ce que grep pense est un fichier binaire, est en fait un fichier binaire. par exemple. Les marionnettes ont des codes de couleur ansi, ce qui fait croire qu'ils sont binaires. Id toujours vouloir les rechercher si Im grepping par le journal de var though. Say j'ai créé le dossier binaire suivant: Et dire, je veux trouver les emplacements de tous les zéros (0x00), en utilisant une syntaxe grep-like. Le meilleur que je puisse faire jusqu'à présent est: Cependant, cela convertit implicitement chaque octet dans le fichier binaire original en une représentation ASCII multi-octets, sur laquelle grep ne fonctionne pas exactement comme le premier exemple d'optimisation :) Y at-il quelque chose comme un grep binaire pour Linux Peut-être aussi quelque chose qui supporte une syntaxe d'expression régulière, mais aussi pour des octets, c'est-à-dire que je pourrais écrire quelque chose comme un (x00) b et faire correspondre zéro ou plus d'octets 0 entre octets a (97) Et b (98) EDIT: Le contexte est que Im travaillant sur un pilote, où je capture des données 8 bits quelque chose va mal dans les données, qui peuvent être kilobytes jusqu'à mégaoctets, et Id comme vérifier les signatures particulières et où ils se produire. (Jusqu'à présent, je travaille avec des extraits de kilobyte, donc l'optimisation n'est pas si importante - mais si je commence à obtenir quelques erreurs en mégaoctet captures de long, et j'ai besoin d'analyser ceux, ma conjecture est que je voudrais quelque chose d'optimisé :). Et surtout, Id comme quelque chose où je peux grep pour un octet comme un caractère - hexdump me force à rechercher des chaînes par octet) EDIT3: Merci à la réponse par tchrist, voici également un exemple avec grepping et matching, et affichage des résultats Pas tout à fait la même question que OP): Pour que les données appariées soient regroupées en un octet (deux caractères hexadécimaux), alors H2 H2 H2. Doit être spécifié pour autant d'octets sont dans la chaîne appariée que mon match. 000xCC000. Couvre 17 octets, je peux écrire H2x17 en Perl. Chacun de ces H2 renverra une variable distincte (comme dans une liste), donc joindre doit également être utilisé pour ajouter des espaces entre eux - éventuellement: Eh bien. En effet Perl est très joli binary grepping facilité, je dois admettre :) Tant que l'on apprend la syntaxe correctement :) demandé Nov 14 10 à 22:31 Une façon de résoudre votre problème immédiat en utilisant seulement grep est de créer un fichier contenant un seul Octet nul. Après cela, grep - abo - f nullbytefile targetfile produira la sortie suivante. C'est bien sûr chaque octet décalé comme demandé par - b suivi d'un octet nul comme demandé par - o Id soit le premier à défendre perl, mais dans ce cas il n'y a pas besoin d'introduire la famille élargie.


No comments:

Post a Comment