Rechercher : dans
Par :

Remplacer un caractere ^M en Vi

Dernière réponse le 17 nov 2008 à 13:38:17 guin, le 6 jan 2005 à 15:18:32 
 Signaler ce message aux modérateurs

J'ai plein de caractere ^M dans mon fichier Vi sous linux
avez un moyen pour s 'en debarasser

J'ai essayer :1;$ s/\^M//g ca ne marche pas !!


Merci pour votre aide

Meilleures réponses pour « remplacer un caractere ^M en Vi » dans :
Le remplacement de variables en shell Bash VoirLe remplacement de variables Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...
Utiliser des accents et autres caractères spéciaux VoirDans la plupart des langages de programmation, on ne peut utiliser directement les accents et autres caractères non-anglosaxon. La solution est l'unicode, une sorte de code universel. Par exemple pour afficher la chaine de caractères : " là, ça...
Raccourcis clavier Vi(m) VoirL'éditeur de texte Vi (VIM - Vi amélioré) - Raccourcis clavier I. Les modes d'exécution II. Le mode commande 1. Le déplacement Les Caractères Le texte Les lignes 2. Recherche 3. Numérotation de lignes 4. Modification, suppression III....
Linux - L'éditeur Vi VoirIntroduction à Vi Vi est un des éditeurs de texte les plus populaires sous les systèmes de type Unix (avec Emacs et pico) malgré son ergonomie très limitée. Sous Linux il existe une version libre de Vi appelée Vim (Vi Improved). Vi (prononcez...
LaTeX - Table de caractères VoirSymboles mathématiques Symboles fléchés Lettres grecques Note : certains caractères n'apparaissent pas sous certains navigateurs (notamment certaines versions de Internet Explorer), ils sont remplacés par un carré, la...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...

1

kelux, le 6 jan 2005 à 15:29:58

Salut,

Le fichier en question était il stocké sous windows auparavant ?

J'avais un probleme un peu similaire (des retours à la ligne avec un \M ou L, je ne me souviens plus de la lettre), un script que j'avais stocké sous windows et lu avec vi sous linux.

J'ai utilisé le programme 'dos2unix'

Ensuite le script etait comme neuf :)



Luc L.
[Gentoo] enfin :Þ

Répondre à kelux

2

Hector..., le 6 jan 2005 à 15:53:52

Voui, je souscriche, encore que chez moi le machçin s'appelle fromdos

fromdos < tonfichierdégueulasse > tonfichiertouprop

mais juste une remarque par rapport à ton remplacement dans vi: les caractères de contrôle, tu ne les tapes pas avec un chapeau (même échappé) puis le caractère. pour avoir ton "chapeau-M" tu tapes Ctrl-V Ctrl-M

tous les caractères de contrôle se tapent comme ça, Ctrl-V suivi de ton caractère de controle

ce qui donne (mais je suis pas sûr que ça va apparaitre... ah ben non ça n'apparaît pas)



un tien dans les champs
tu l'auras méchant

Répondre à Hector...

3

guin, le 6 jan 2005 à 16:01:05

Voici la réponse :

tapez la commande suivante :

:1$ s/\r//g


Merci pour votre disponibilité

Répondre à guin

4

OdEa, le 4 avr 2005 à 11:59:22

Sans oublier le ";"

:1;$ s/\r//g

;-)

Répondre à OdEa

5

[Dal], le 4 avr 2005 à 18:03:04
  • +1

Bounjour guin,

Pour compléter la réponse, dans "vi", tu peux taper des caractères non imprimable du type "^M" (qui signifie "Ctrl-M" cette combinaison donnant le code ASCII équivalent à la la touche "entrée") en tapant "Ctrl-v" suivi de ta touche non imprimable.

Donc en tapant Ctrl-v puis Ctrl-M, tu obtiens un "^M" compris par vi comme étant le caractère non imprimable Ctrl-M.


Dal

Répondre à [Dal]

6

jdautz, le 17 nov 2008 à 13:17:22
  • +1

Je répond à ce vieux post parce qu'il est bien placé dans google et que les réponses sont assez légères...

bref, il suffit de taper dans vim:
:set fileformat=unix

et le fichier est converti avec les fins de lignes de unix.
inversement:
:set fileformat=dos
permettra aux utilisateurs de windows de lire votre fichier de manière agréable. Cette commande fixe le format du fichier, il n'est donc pas nécessaire de le refaire à chaque ouverture.

La commande unix
file mon_fichier.txt
permet de connaître le type de mon_fichier.txt (où de n'importe quel fichier avec un contenu mime valide)

Et effectivement, avec le paquet tofrodos installé, vous avez les commandes:
fromdos mon_fichier.txt
todos mon_fichier.txt
dont le nom est assez explicite.

Dans la même catégorie dans vim:
:set fileencoding=utf-8
converti le fichier iso-machin ou latinX en utf8

inversement:
:set fileencoding=iso-8859-15
converti le fichier pour être lisible sous win98 ou pour votre site web obsolète ]:->

En ligne de commande, "iconv" fera des merveilles. Pour plus de précision:
man iconv

Répondre à jdautz

7

 lami20j, le 17 nov 2008 à 13:38:17

Salut,

La commande unix
file mon_fichier.txt
permet de connaître le type de mon_fichier.txt


En complément, la commande cat permet de voir les caractères non imprimables

cat -A fichier.txt
--
106485010510997108

Répondre à lami20j