Formatage de fichier texte
Résolu
tlep
Messages postés
597
Statut
Membre
-
tlep Messages postés 597 Statut Membre -
tlep Messages postés 597 Statut Membre -
Bonjour,
Connaissez-vous la commande permettant de savoir si un fichier texte est au format UNIX, PC, ou MAC ?
Merci :-)
Connaissez-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
- 1
- 2
Suivant
-
Salut,
file fichier
ne te conviens pas? -
Si mais je ne connaissais pas, merci ;-)
Et ca ne fonctionne pas exactement comme attendu:
file index.php
index.php: PHP script text
Ca ne me dit pas si c'est du UNIX, MAC ou PC.
Je me posais la question parce que les greps fonctionnent mal parfois sur des fichiers formatés PC, et du coup j'applique dos2unix dessus; mais je me demandais si'il existait une commande pour spécifier le type avant. -
Salut,
Alors teste les fins de ligne de ton fichier avant (le "^M" s'obtient par "CTRL V + CTRL M) :[tmpfs]$ grep '^M' fich_DOS.txt >/dev/null [tmpfs]$ echo $? 0 [tmpfs]$ grep '^M' fich_UNIX.txt >/dev/null [tmpfs]$ echo $? 1 [tmpfs]$
et traite en fonction du résultat du code retour ;-))
-
Ah, d'accord
en fait tu veux tester si la fin de ligne est
\n - UNIX
\r - MAC
\n\r - WIN
Alors tu peux faire un script pour tester la fin de ligne
Si \n Alors UNIX
etc.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Ah ben non ca ne marche pas;
j'ai fait des tests sur des fichiers en format pc ou unix, grep '^M' fich_DOS.txt >/dev/null et $? renvoie toujours 1.
J'ai pourtant bien vérifié puisque au format PC size=23: et après dos2unix: size=20.
Et le grep sur \n ou \r ne renvoie rien
:-| -
Affiche tes fichiers avec "cat -A" s'il te plait.
-
cat -A Document1.txt
thierry^M$
test ^M$
ascii^M$
dos2unix Document1.txt && cat -A Document1.txt
thierry$
test $
ascii$ -
Pour les fichiers MAC, je te conseille de faire d'abord la conversion de \r en \n ou d'ajouter le \n si tu veux avoir un fichier Win
-
Affiche maintenant tes commandes sur tes fichiers et le résultat à l'écran, merci.
-
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 -
Bon 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.
-
cat -A Document1.txt && grep '^M' Document1.txt
thierry^M$
test ^M$
ascii^M$
^M$
^M$
Etonnant ! -
Essaye avec "grep -E" (ou egrep), pour voir ;-\
-
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" :-| -
cat -A Document1.txt && grep -E '^M' Document1.txt ;echo $?
thierry^M$
test ^M$
ascii^M$
^M$
^M$
1
Pareil :-| -
Fais un grep sans le cat avant pour voir ce qu'il en ressort vraiment...
-
Et apparemment avec sed ca marche aussi :
sed conversion retours chariots dos crlf unix lf -
-
Tu 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.
- 1
- 2
Suivant