Quel est le meilleur moyen de convertir les fichiers CRLF en sauts de ligne dans des fichiers sous Linux?
J'ai vu des commandes sed , mais y a-t-il quelque chose de plus simple?
linux
carriage-return
JoelFan
la source
la source
Réponses:
Utilisez cette commande:
L'inverse:
Ces commandes se trouvent dans le paquet tofrodos (sur les distributions les plus récentes), qui fournit également les deux wrappers unix2dos et dos2unix qui imitent les anciens outils unix du même nom.
la source
find . -name '*.txt' -print0 | xargs -null fromdos
Utilisez
dos2unix
.la source
Je préfère le perl :
Mais cela convient bien à mes utilisations et il m'est très facile de m'en souvenir. Tous les systèmes ne disposent pas d'une commande dos2unix, mais la plupart des travaux sur lesquels je travaille ont un interpréteur Perl.
Un autre est recodé , un puissant substitut pour dos2unix et iconv; il est disponible dans le paquet "recode" dans les dépôts Debian:
Pour les fans de awk :
... et sed :
Et maintenant, seulement un peu moins compliqué que de supprimer les CR à la main dans un éditeur hexadécimal, directement d' un de nos amis de stackoverflow.com , utilisables avec l' interpréteur de boeuf (situé sur le référentiel Debian de votre sympathique quartier),
dos2unix dans le brainfuck !
grand merci à jk pour avoir perdu une heure de sa vie à écrire ça!
la source
Je fais ça sur Bash :
la source
Je pense que vous pouvez aussi utiliser
tr
(bien que je n’ai pas de fichiers de format amusant à essayer):la source
Dans vi ou Vim :
la source
J'ai trouvé un moyen très simple… Ouvrez un fichier avec nano: ## nano file.txt
appuyez sur Ctrl + O pour enregistrer, mais avant d’appuyer sur Entrée, appuyez sur: Alt + D pour basculer entre les fins de ligne DOS et Unix / Linux, ou: Alt + M pour basculer entre les fins de ligne Mac et Unix / Linux, puis appuyez sur Entrée pour enregistrer les modifications. Ctrl + X pour quitter.
la source
Alt+d
. Parfois, alt est intercepté par le programme terminal, vous pouvez donc l'utiliser à laesc+d
place.Je préfère Vim et
:set fileformat=unix
. Bien que ce ne soit pas le plus rapide, il me donne un aperçu. Ceci est particulièrement utile dans le cas d'un fichier à terminaisons mixtes.la source
Si vous voulez une méthode graphique, essayez l’ éditeur de texte Kate (d’autres éditeurs de texte avancés peuvent également le gérer). Ouvrez la Recherche / Remplacer dialogue ( Ctrl+ R), et remplacer
\r\n
par\n
. (NB: vous devez choisir "Expression régulière" dans le menu déroulant et désélectionner "Sélection uniquement" dans les options.)EDIT: Ou, si vous voulez simplement convertir au format Unix, utilisez l'option de menu
Tools
>End of Line
>Unix
.la source
\r\n
à\n
puis à l' aide de recherche / remplacement est plus facile que de se souvenir que OS utilisations de fin de ligne. ;)Collez ceci dans le script Python dos2unix.py .
Devrait fonctionner sur n'importe quelle plate-forme sur laquelle Python est installé. Domaine public.
la source
CR LF
à l'LF
aide awk :Exemple d'utilisation:
Explication:
-v RS='\r?\n'
ensembles RS variables ( entrée R ECORD de la eparator) de à\r?\n
, ce qui signifie entrée sont lues ligne par ligne , séparés par LF (\n
) qui peut (?
) est précédée par CR (\r
).1
Est-ce que le script est exécuté par awk? Un script est composé decondition { action }
. Dans ce cas,1
est la condition qui est évaluée à true. L'action est omise, donc l'action par défaut est exécutée, ce qui signifie que vous imprimez la ligne en cours (qui pourrait également être écrite sous la forme{print $0}
ou simplement{print}
).LF
àCR LF
: permet de définir la variableORS
( o utput r ECORD s eparator) pour modifier les extrémités de la ligne de la sortie. Exemple:la source
J'ai utilisé ce script pour les fichiers nécessaires au transfert d'urgence de fichiers d'un système Windows vers un système Unix.
find . -type f
Recherche tous les fichiers, de manière récursive, dans le répertoire dans lequel vous exécutez la commande.
xargs file
Transmettez-le au programme de fichiers pour obtenir une analyse du fichier.
grep CRLF
Nous voulons seulement la sortie du fichier qui montre CRLF.
cut -d: -f1
Obtenez la sortie à la couleur. jeter le reste. Nous devrions seulement avoir un nom de fichier maintenant
xargs dos2unix
Passez le nom du fichier au programme dos2unix en utilisant xargs .
la source