46 votes

Comment remplacer ou trouver des caractères non imprimables dans vim regex ?

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 dois-je procéder ?

44voto

ars Points 35803

Supposons que vous vouliez remplacer ^C par C :

:%s/

Ctrl V C signifie taper V puis C tout en maintenant la touche Ctrl enfoncée.

Ctrl V vous permet de saisir des caractères de contrôle.

11voto

ticktock Points 108

Essayez ceci après avoir enregistré votre fichier dans vim (en supposant que vous êtes dans un environnement Linux)

 :%!tr -cd '[:print:]\n'

8voto

Dalin Points 665

Aucune des réponses ici utilisant les caractères de contrôle de Vim n'a fonctionné pour moi. J'ai dû entrer une plage unicode.

 :%s/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]//g

Cette plage unicode a été trouvée sur cet autre article : https://stackoverflow.com/a/8171868/231914

5voto

codaddict Points 154968

Vous pouvez utiliser:

 :%s/^C//g

Pour obtenir le ^C maintenez la touche de contrôle enfoncée, appuyez sur V puis sur C (tous deux en maintenant la touche de contrôle enfoncée) et le ^C apparaîtra . Cela trouvera toutes les occurrences et les remplacera par rien.

Pour supprimer à la fois ^C et ^B vous pouvez faire :

 :%s/^C\|^B//g

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X