GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce qui fait que Grep considère qu'un fichier est binaire ?

J'ai des vidages de base de données d'un système Windows sur ma boîte. Ce sont des fichiers texte. J'utilise cygwin pour les parcourir. Ceux-ci semblent être des fichiers texte bruts; Je les ouvre avec des éditeurs de texte tels que le bloc-notes et le wordpad et ils ont l'air lisibles. Cependant, lorsque je lance grep dessus, il indique que binary file foo.txt matches .

J'ai remarqué que les fichiers contiennent des ascii NUL caractères, qui, je crois, sont des artefacts du vidage de la base de données.

Alors, qu'est-ce qui fait que grep considère ces fichiers comme binaires ? Le NUL personnage? Y a-t-il un drapeau sur le système de fichiers ? Que dois-je changer pour que grep me montre les correspondances de lignes ?

Réponse acceptée :

S'il y a un NUL caractère n'importe où dans le fichier, grep le considérera comme un fichier binaire.

Il pourrait y avoir une solution de contournement comme ce fichier cat | tr -d '

Linux
  1. Commande grep Linux

  2. Comment "grep" un flux continu ?

  3. Quelles sont les différences entre grep, awk et sed ?

  4. Qu'est-ce qu'un fichier .so.2 ?

  5. Rediriger strace vers le fichier

Qu'est-ce qu'umask sous Linux ?

Qu'est-ce qu'un fichier .bashrc sous Linux ?

Qu'est-ce qu'un fichier .sh ?

Comment supprimer les résultats de correspondance de fichiers binaires dans grep

Qu'est-ce qu'un fichier .so ?

Qu'est-ce qui pourrait amener la commande file sous Linux à signaler un fichier texte en tant que données binaires ?