Comment faire pour supprimer la non-ascii des caractères à l'aide de sed
Je veux supprimer non-ascii des caractères à partir d'un fichier. J'ai déjà essayé ces nombreux regexs.
sed -e 's/[\d00-\d128]//g' # not working
cat /bin/mkdir | sed -e 's/[\x00-\x7F]//g' >/tmp/aa
mais ce fichier contient des caractères non ascii caractères.
[root@asssdsada ~]$ hexdump /tmp/aa |more
00 01 02 03 04 05 06 07 - 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF
00000000 45 4C 46 B0 F0 73 38 C0 - C0 BC BC FF FF 61 61 61 ELF..s8......aaa
00000010 A0 A0 50 E5 74 64 50 57 - 50 57 50 57 D4 D4 51 E5 ..P.tdPWPWPW..Q.
00000020 74 64 6C 69 62 36 34 6C - 64 6C 69 6E 75 78 78 38 tdlib64ldlinuxx8
00000030 36 36 34 73 6F 32 47 4E - 55 42 C8 C0 80 70 69 42 664so2GNUB...piB
00000040 44 47 BA E3 92 43 45 D5 - EC 46 E4 DE D8 71 58 B9 DG...CE..F...qX.
00000050 8D F1 EA D3 EF 4B 86 FC - A9 DA 79 ED 63 B5 51 92 .....K....y.c.Q.
00000060 BA 6C FC D1 69 78 30 ED - 74 F1 73 95 CC 85 D2 46 .l..ix0.t.s....F
00000070 A5 B4 6C 67 DA 4A E9 9A - 4B 58 77 A4 37 80 C0 4F ..lg.J..KXw.7..O
00000080 F3 E9 B2 77 65 97 74 F9 - A2 C0 F2 CC 4A 9C 58 A1 ...we.t.....J.X.
OriginalL'auteur user87005 | 2013-02-28
Vous devez vous connecter pour publier un commentaire.
Cela ne semble pas fonctionner avec
sed
. Peut-êtretr
va faire?Ou avec le complément:
Il devrait fonctionner. Pouvez-vous produire un exemple où ne fonctionne pas?
Sur macOS High Sierra, j'obtiens cette erreur:
tr: Illegal byte sequence
.J'ai testé avec tr de GNU coreutils
OriginalL'auteur Thor
Avez-vous essayé
Je pense qu'il résout le problème ?
Si seulement un contenu de texte vous intéresse, vous pouvez également utiliser
OriginalL'auteur sebtic
Savez-vous ce que l'encodage du fichier est actuellement à l'aide? Si oui, vous pouvez utiliser iconv pour le convertir. C'est un utilitaire pour convertir du codage d'un caractère à l'autre. Donc, si le fichier d'origine est en UTF-8 et que vous souhaitez convertir en ASCII, vous pouvez utiliser les éléments suivants:
Le fichier de commande dans le fichier d'entrée peut vous dire le codage en cours.
Fait intéressant, il y a une commande appelée frca qui fera de son mieux pour déterminer l'encodage des caractères utilisé si vous connaissez la langue du contenu du fichier.
Ce autre question pourrait être la réponse.
En regardant la sortie de hexdump, est-ce un fichier binaire? (Deviner à partir d'ELF au début) Si oui, quel est le but de supprimer les caractères non-ascii? Le binaire est corrompu.
c'est juste un exemple, un ami.
Ah, c'est cool. J'ai ajouté un lien vers une question connexe, qui pourrait résoudre votre problèmes.
même fonctionne bien avec cette commande perl, Mais j'ai besoin de sed. cat /bin/mkdir | perl -ne 's/[^[:ascii:]]//g;print $_;'
OriginalL'auteur chooban
Essayer avec sed-i option, par exemple.
il remplace tous les caractères non-ascii dans le fichier.
OriginalL'auteur DharmenderRawat