Formatage de fichier texte
RésoluConnaissez-vous la commande permettant de savoir si un fichier texte est au format UNIX, PC, ou MAC ?
Merci :-)
Configuration: Windows XP Firefox 2.0.0.7
29 réponses
La discussion porte sur la détermination du format de fin de ligne d’un fichier texte (UNIX, PC ou MAC) et les méthodes disponibles sous Windows XP. Plusieurs propositions s’appuient sur grep pour détecter les retours chariot, cat -A pour afficher les caractères invisibles et sed pour tester ou transformer le contenu. D’autres suggèrent dos2unix pour convertir les fins de ligne et vérifient le résultat avec des commandes comme grep, stat ou awk, afin d’identifier rapidement le format. En cas d’incertitude, certaines réponses recommandent aussi l’utilisation de tests complémentaires ou de compression pour isoler l’origine d’un comportement inattendu.
-
Ah oui vraiment désolé sur ce coup :-(
-
AAAAAAAAHHHHHHHHH j'avais pas compris désolé !
Mais comment par exemple on peut mettre de 'Ctrl+VCtrl+M' dans un script du coup ?? -
Modérateurgrep '^M' ktoYFLHY65_Document1.txt
ne renvoie rien
il ne faut pas taper ^M mais CTRL+V suis de CTRL+M et ça te donnera ^M
doncgrep 'Ctrl+VCtrl+M' fichier.txt
--
lami20j -
ModérateurYes et grep (grep de GNU) 2.5.1
-
Ah ben chez moi:
grep '^M' ktoYFLHY65_Document1.txt
ne renvoie rien
votre shell c bash aussi ? -
ModérateurMoi je vois bien que t'es lignes se finissent avec CR
root@debian:~/trash# cat ktoYFLHY65_Document1.txt | perl -ne 's/(.)/ord($1)/eg;print' 11610410510111411412113 1161011151163213 971159910510513 13 13 root@debian:~/trash#
--
lami20j -
ModérateurBon ben chez moi il n'y a aucun soucis ;-\
[tmpfs]$ file ktoYFLHY65_Document1.txt ktoYFLHY65_Document1.txt: ASCII text, with CRLF line terminators [tmpfs]$ cat -A ktoYFLHY65_Document1.txt thierry^M$ test ^M$ ascii^M$ ^M$ ^M$ [tmpfs]$ grep '^M' ktoYFLHY65_Document1.txt thierry test ascii [tmpfs]$ sed -n l ktoYFLHY65_Document1.txt thierry\r$ test \r$ ascii\r$ \r$ \r$ [tmpfs]$
Remarque avec la commande "file" le type de fin de ligne qui est indiqué... peut être une piste à exploiter.
-
Ca y est
http://cjoint.com/data/ktoYFLHY65.htm
C juste DOcument1.txt fait avec textpad sous windows
(Textpad permet de choisir le type d'enregistrement (PC, MAC UNIX..) -
Modérateuravant de les mettre sur cjoint vaut peut être mieux de les compresser.
-
ModérateurTu peux mettre ton fichier DOS sur Cjoint s'il te plaît que je teste ça chez moi pour déterminer si ça vient du fichier ou d'ailleurs, merci.
-
grep -E '^M' Document1.txt
RIEN ! -
Et apparemment avec sed ca marche aussi :
sed conversion retours chariots dos crlf unix lf -
ModérateurFais un grep sans le cat avant pour voir ce qu'il en ressort vraiment...
-
cat -A Document1.txt && grep -E '^M' Document1.txt ;echo $?
thierry^M$
test ^M$
ascii^M$
^M$
^M$
1
Pareil :-| -
Je viens de voir un truc intéressant mais ca utilise tr et non grep :
http://perso.orange.fr/gleu/absfr.tuxfamily.org/abs-2.3-fr/textproc.html
"Exemple 12-17. Du: Convertit les fichiers text DOS vers UNIX"
Et le grep ne fonctionne pas sur "\015" :-| -
ModérateurEssaye avec "grep -E" (ou egrep), pour voir ;-\
-
cat -A Document1.txt && grep '^M' Document1.txt
thierry^M$
test ^M$
ascii^M$
^M$
^M$
Etonnant ! -
ModérateurBon concernant la taille avec "stat", essaie plutôt :
stat -c 'Size : %s' fichier
et pour en revenir à ton autre problème, affiche le résultat de :cat -A Document1.txt && grep '^M' Document1.txt
sur le fichier formaté en DOS.
-
grep '^M' Document1.txt >/dev/null;echo $?
1
stat Document1.txt|grep Size|awk '{print $1$2}'
Size:27
dos2unix Document1.txt && grep '^M' Document1.txt >/dev/null;echo $?
1
stat Document1.txt|grep Size|awk '{print $1$2}'
Size:22 -
ModérateurAffiche maintenant tes commandes sur tes fichiers et le résultat à l'écran, merci.
- 1
- 2