J'ai plusieurs fichiers XML très volumineux et j'essaie de trouver les lignes qui contiennent des caractères non ASCII. J'ai essayé ce qui suit :
grep -e "[\x{00FF}-\x{FFFF}]" file.xml
Mais cela renvoie chaque ligne du fichier, qu'elle contienne ou non un caractère dans la plage spécifiée.
La syntaxe est-elle fausse ou est-ce que je fais quelque chose de mal ? J'ai également essayé :
egrep "[\x{00FF}-\x{FFFF}]" file.xml
(avec des guillemets simples et doubles entourant le motif).
0 votes
Les caractères ASCII ne font qu'un octet de long, donc à moins que le fichier soit unicode, il ne devrait pas y avoir de caractères au-dessus de 0xFF.
0 votes
Comment faire pour aller au-delà \xFF ? Grep donne une erreur "grep : range out of order in character class".
0 votes
Parfois, il est bon d'avoir un deuxième avis sur les personnages dont le bit haut est activé dans un fichier. Dans ce cas, j'aime
tr <file.txt -d '\000-\177' >foo.out && ls -al foo.out
pour obtenir un compte. Et/ou suivi deod -x foo.out
pour avoir un aperçu des valeurs réelles.