GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer les caractères non-ascii à l'aide de sed

Les solutions proposées ici n'ont pas fonctionné pour moi. Peut-être que mon problème était différent, mais j'avais besoin de supprimer les couleurs ASCII et les autres caractères du texte ASCII autrement pur.

Ce qui suit a fonctionné pour moi, cependant :

Suppression des codes d'échappement du texte ASCII

sed -E 's/\x1b\[[0-9]*;?[0-9]+m//g'

En contexte (BASH) :

$ printf "\e[32;1mhello\e[0m\n"
hello

$ printf "\e[32;1mhello\e[0m\n" | cat -vet
^[[32;1mhello^[[0m$

$ printf "\e[32;1mhello\e[0m\n" | sed -E 's/\x1b\[[0-9]*;?[0-9]+m//g' | cat -vet
hello$

Avez-vous essayé

cat /bin/mkdir | tr -cd "[:print:]"

Je pense que ça résout le problème ?

Si seul le contenu textuel vous intéresse, vous pouvez également utiliser

cat /bin/mkdir | strings

Savez-vous quel encodage le fichier utilise actuellement ? Si c'est le cas, vous pouvez utiliser iconv pour le convertir. C'est un utilitaire pour convertir d'un encodage de caractères à un autre. Ainsi, si le fichier d'origine est en UTF-8 et que vous souhaitez convertir en ASCII, vous pouvez utiliser ce qui suit :

iconv -f utf8 -t ascii <inputfile>

La commande de fichier sur le fichier d'entrée peut vous indiquer l'encodage actuel.

Fait intéressant, il existe une commande appelée enca qui fera de son mieux pour déterminer l'encodage de caractères utilisé si vous connaissez la langue du contenu du fichier.

Cette autre question pourrait être la réponse.


Cela ne semble pas fonctionner avec sed . Peut-être tr fera l'affaire ?

tr -d '\200-\377'

Ou avec le complément :

tr -cd '\000-\177'

Linux
  1. Debian :comment installer ou supprimer des packages DEB à l'aide de dpkg

  2. Comment supprimer des fichiers de plus de N jours à l'aide de tmpreaper sous Linux

  3. Comment écrire des caractères non ASCII en utilisant echo ?

  4. Supprimer un caractère spécifique en utilisant awk ou sed

  5. sed - comment faire des groupes regex en utilisant sed

Comment supprimer des répertoires et des fichiers à l'aide de Linux

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

Tutoriel Unix Sed :comment écrire dans un fichier à l'aide de Sed

Comment supprimer un redirecteur d'e-mails à l'aide de cPanel

Comment supprimer un préfixe de mot à l'aide de grep ?