Je souhaite transférer des fichiers de Windows vers Unix à l'aide de Tectia. Mais le problème est que lorsque ces fichiers sont transférés (en mode Ascii ou binaire) et ouverts à l'aide de VI, nous obtenons ^ M caractères. Est-il possible que ces ^ M caractères n'apparaissent pas en premier lieu?.
Merci à tous pour votre aide. J'ai résolu ce problème en utilisant une solution de contournement. Windows utilise CR + LF (\ r\n) comme fin de ligne et Unix utilise LF (\ n) comme fin de ligne.J'ai pris le fichier Windows et l'a remplacé le CR + LF (\ r\n) avec LF (\ n) dans le code lui-même sans aucun utilitaire. Cela a rendu le fichier compatible pour les systèmes Unix puis j'ai transféré le fichier en utilisant SFTP et cela fonctionnait sous Unix.
Comment j'ai pu l'enlever dans l'éditeur v:
:%s/
puis appuyez sur ctrl+V puis ctrl+M. Cela vous donnera ^M
//g
(ressemblera à: :%s/^M
), appuyez sur Enter devrait être tout enlevé.Bonne chance!
Vous pouvez installer et utiliser dos2unix . Après l'installation, lancez simplement:
>dos2unix yourfile.txt
Si vous devez simplement supprimer les caractères ^M
(ne les remplacez pas par \n
):
sed -i -e 's/\r//g' yourfile.txt
Si vous voulez les remplacer par \n
:
sed -i -e 's/\r/\n/g' yourfile.txt
Essayez d’exécuter ce qui suit sur votre terminal (vous devrez peut-être l’installer au préalable):
fromdos <your-file>
Encore une astuce à enlever Ctrl+M dans l'éditeur vi:
:%s/^V^M//g
Pour plus d'astuce à retirer Ctrl+M caractères
:%s/^V^M//
g
pas nécessaire du tout.
%s
- recherche et remplace le texte que vous souhaitez remplacer
^V^M
à remplacer par "devrait être après une double barre oblique", gardez-le vide si vous souhaitez le remplacer par rien
Essayer
tr -d '\015' <INPUT_FILE > OUTPUT_FILE