J'ai un fichier avec des caractères non-imprimables qui apparaissent comme^C ou^B, je veux trouver et remplacer ces caractères, comment puis-je faire cela?Comment remplacer ou trouver des caractères non imprimables dans vim regex?
Répondre
que vous voulez remplacer^C avec C:
:%s/CtrlVC/C/g
Où CtrlVC signifie le type V puis C tout en maintenant les touches Ctrl enfoncée.
CtrlV vous permet de saisir des caractères de contrôle.
Vous pouvez utiliser:
:%s/^C//g
Pour obtenir le ^C
maintenez la touche de commande, appuyez sur V
puis C
(deux en maintenant la touche de commande) et le ^C
apparaîtra. Cela trouvera toutes les occurrences et les remplacera par rien.
Pour retirer les deux ^C
et ^B
que vous pouvez faire:
:%s/^C\|^B//g
Essayez ceci après avoir sauvegardé votre fichier dans vim (en supposant que vous êtes dans un environnement Linux)
:%!tr -cd '[:print:]\n'
s'il vous plaît expliquer ce jour en économisant le vaudou magique! – Prospero
@JamesAndino: ':%' filtre toutes les lignes en utilisant le programme externe '' '' '' '' '' '', qui supprime _ ('-d') tous les caractères qui sont _not_ (' -c') _printable_ ('[: print: ] ') ou _newline_ (' \ n'). – quasimodo
Ce n'est pas convivial Unicode, car il s'agit d'une classe de caractères POSIX (http://en.wikipedia.org/wiki/Regular_expression#Character_classes). Donc, si vous avez YAML avec des données comme 你好, 'tr' supprimera les données Unicode en utilisant' [: print:] '. – ash
Suppression des symboles de contrôle seulement:
:%s/[[:cntrl:]]//g
Suppression de caractères non-imprimables (supprime les caractères non-ASCII aussi):
:%s/[^[:print:]]//g
Au moins jusqu'à ce que vim 7.3 [: print:] ne corresponde qu'aux caractères imprimables ASCII (éditez la réponse pour alerter les lecteurs à ce sujet) – ndemou
@ndemou Ceci est difficile, avec le []: [] le^devrait inverser le correspondre et retourner tout non-imprimable. Ou peut-être que c'était votre montage? – dragon788
@ dragon788, oui j'étais conscient de la façon dont cela fonctionne quand j'ai écrit mon commentaire. Essayez le 2ème regex sur le texte avec des caractères Unicode imprimables en dehors de la table ASCII pour comprendre mon commentaire (il enlèvera les caractères Unicode). – ndemou
Aucune des réponses ici en utilisant les caractères de contrôle de Vim n'a fonctionné pour moi. Je devais entrer dans une gamme Unicode.
:%s/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]//g
Cette gamme unicode a été trouvé sur cet autre message: https://stackoverflow.com/a/8171868/231914
Parce que TAB est considéré comme non-imprimable, donc ces [[: cntrl:]] et [^ [: print:]] correspondent à TAB (0x9, C-I) – mosh
- 1. URL avec caractères non imprimables
- 2. Afficher des caractères spéciaux (non imprimables) dans le contrôle WPF
- 3. Caractères imprimables dans Symbian
- 4. Sybase: comment supprimer des caractères non-imprimables des champs CHAR ou VARCHAR avec SQL?
- 5. Remplacer des caractères non imprimables spécifiques dans les fichiers volumineux de la ligne de commande Linux
- 6. Détecter les caractères non imprimables en JavaScript
- 7. Remplacer Regex - Caractères multiples
- 8. Comment gérer les paramètres de caractères ASCII non-imprimables?
- 9. php chaînes non imprimables
- 10. caractères imprimables en Java
- 11. Comment faire pour contourner SerializeJSON dans CF8 encodage caractères non imprimables?
- 12. Combien de caractères non imprimables sont couramment utilisés?
- 13. PHP regex - trouver et remplacer
- 14. Ajout de caractères non imprimables à une chaîne Java?
- 15. regex caractère unicode dans vim
- 16. Inverser regexp dans vim
- 17. regex ruby trouver et remplacer
- 18. Comment faire correspondre et remplacer un caractère non-mot entre des caractères de mot avec RegEx?
- 19. Comment interpréter les caractères non imprimables dans l'horodatage envoyé par le serveur Lotus Notes POP3?
- 20. Regex trouver des balises spécifiques pour remplacer dans une chaîne
- 21. Utilisation de la découpe avec des délimiteurs non imprimables
- 22. RegEx (en JavaScript find/remplacer) - correspondent à des caractères non-alphanumériques, mais ignorer - et +
- 23. regex vim pour remplacer les espaces entre guillemets
- 24. Enregistrement de caractères non imprimables dans la base de données dans Rails
- 25. Générer des caractères non imprimables de poids faible à partir de XLST
- 26. Javascript regex pour rejeter des caractères non ASCII US
- 27. vim regex remplacer plusieurs espaces consécutifs avec un seul espace
- 28. Rails ActiveRecord: Insertion de texte contenant des caractères non imprimables/étranges
- 29. Regex: ignorer des caractères supplémentaires
- 30. Javascript Expressions régulières - Remplacer des caractères non numériques
Vous pouvez également utiliser Ctrl-Q. Ceci est utile pour certains utilisateurs qui mappent Ctrl-V aux opérations de presse-papiers –