#1 Le 31/08/2007, à 13:11
- neeux
[Bash] Supprimer les lignes contenant un caractère non ASCII?
Bonjour, j'ai un gros fichier texte de 1.1Gio.
Il y a un mot par ligne.
Seulement il y a un certain nombre de lignes qui possèdent des caractères non ASCII.
Existe il une façon simple de supprimer ces lignes.?
Merci
Hors ligne
#2 Le 31/08/2007, à 15:11
- tshirtman
Re : [Bash] Supprimer les lignes contenant un caractère non ASCII?
Peut être avec un:
egrep [[:alnum:]] fichier
si tous tes autres mots ne contiennent pas d'espaces et autre ponctuations, auquels cas il faudras complexifier l'expression.
man egrep
Hors ligne
#3 Le 31/08/2007, à 16:45
- neeux
Re : [Bash] Supprimer les lignes contenant un caractère non ASCII?
Ben justement c'est la grosse blague de cette histoire.
Chaque mot peut avoir des espaces des accents et des cartatères spéciaux...
En fait j'ai des caractères "invalides" (Peut être des mots d'un autres alphabet, je ne sais pas)...
Hors ligne
#4 Le 31/08/2007, à 16:54
- tshirtman
Re : [Bash] Supprimer les lignes contenant un caractère non ASCII?
alors soit tu repere un caractere invalide et tu fait un grep -V caractere
et tu recommence pour chaques caractère que tu connais qui pose problème, soit tu agrémente l'expression réglulière pour qu'elle laisse aussi passer les espaces etla ponctuation, ça devrais donner quelque chose du genre
egrep [[:alphanum:][:punct:][:space:]] fichier
tu peut aussi si tes caractères spéciaux ont une forme commune (le même caractère d'échappement au début par exemple) faire ton grep -V sur celle çi.
bonne chance
Hors ligne
#5 Le 31/08/2007, à 16:58
- Spalax
Re : [Bash] Supprimer les lignes contenant un caractère non ASCII?
Peut-être un problème d'encodage des caractères ?
Si c'est le cas, je ne peux pas t'aider. Je ne suis pas spécialiste en la matière et ce n'est absolument pas dans mes projets de m'y mettre.
Dernière modification par Spalax (Le 14/09/2007, à 21:03)
Hors ligne
#6 Le 03/09/2007, à 13:55
- neeux
Re : [Bash] Supprimer les lignes contenant un caractère non ASCII?
Merci de vos réponses.
Alors en fait j'ai simplement mis dans un fichier la liste des caractère autorisé. Et j'ai ensuite demandé de supprimer toutes les lignes où il y a un caractère qui n'était pas dans ce fichier..
Merci
Hors ligne