Question Existe-t-il un programme pouvant compter l’occurrence d’une certaine chaîne dans un fichier binaire?


J'ai un fichier binaire et je dois compter les occurrences de certaines chaînes dans ce fichier ou même les lister avec des décalages. Sous Windows ou Linux, pour cette tâche, j'utilise Fedora 12 et Windows 2000.


4
2018-05-15 14:29


origine


Pour Linux: strings -a filename | grep string | wc -l. - ott--


Réponses:


Sous Linux avec GNU grep:

grep -F --text -o --byte-offset mystring binaryfile

Exemple:

$ grep -F --text -o --byte-offset option /bin/tar
226542:option
237529:option
237612:option
...

Explication des paramètres:

-F, --fixed-strings
      Interpret PATTERN as a list of fixed strings, separated by newlines,
      any of which is to be matched.  (-F is specified by POSIX.)

-a, --text
      Process  a binary file as if it were text; this is equivalent to the
      --binary-files=text option.

-o, --only-matching
      Print  only the matched (non-empty) parts of a matching line, with
      each such part on a separate output line.

-b, --byte-offset
      Print the 0-based byte offset within the input file before each line
      of output. If -o (--only-matching) is specified, print the offset of
      the matching part itself

Pour compter les occurrences ajouter | wc -l à la ligne de commande.


7
2018-05-15 15:13



Est-il possible d'obtenir le compte seulement? Je sais que j'ai demandé des compensations, mais pour le compte aussi. - IvanH
@IvanH: il suffit de le diriger vers wc -l - ℝaphink
Bon travail y compris les autres paramètres! - Simon Sheehan


Agent Ransack - Utilitaire de recherche de fichiers gratuit

  • Résultats immédiats Le texte trouvé est affiché avec des mots-clés surlignés, vous n'avez donc pas besoin de perdre du temps à ouvrir chaque fichier à la recherche de
      bonne information.

  • Expressions booléennes Combinez des termes de recherche en utilisant les opérateurs booléens familiers AND, OR, NOT.

  • Formats de bureau Prise en charge des formats Office courants, y compris Office 2007 et OpenOffice.
  • Perl regex Prise en charge des expressions régulières compatibles Perl.
  • Version 64 bits Version 64 bits compilée nativement pour une compatibilité améliorée.
  • Recherche rapide Des algorithmes de recherche très efficaces signifient que vous passez moins de temps à attendre les résultats.
  • Impression et exportation Les résultats peuvent être partagés avec d'autres par l'impression et l'exportation.

enter image description here


2
2018-05-16 03:47



Peut-il gérer un fichier binaire? - IvanH
Oui, il peut gérer des valeurs binaires. Voir la capture d'écran, il a également trouvé dll des dossiers. - user


Sous Linux, vous pouvez utiliser strings -a [filename] | grep [string] | wc -l

Sous Windows, vous pouvez utiliser le strings * | findstr /i [string], avec le utilitaire de chaînes de Sysinternals.


1
2018-05-15 15:05



Comment les occurrences multiples sur la même ligne sont-elles comptées, en une ou plusieurs fois? - Cristian Ciupitu