Formatage de fichier texte

Résolu/Fermé
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 19 oct. 2007 à 10:46
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 19 oct. 2007 à 15:33
Bonjour,

Connaissez-vous la commande permettant de savoir si un fichier texte est au format UNIX, PC, ou MAC ?

Merci :-)
A voir également:

29 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
19 oct. 2007 à 10:48
Salut,

file fichier
ne te conviens pas?
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 10:55
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.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
19 oct. 2007 à 11:22
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 ;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
19 oct. 2007 à 11:23
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.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 11:25
ah ok merci a vous ;-)
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 11:38
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

:-|
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
19 oct. 2007 à 11:46
Affiche tes fichiers avec "cat -A" s'il te plait.
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 12:17
cat -A Document1.txt
thierry^M$
test ^M$
ascii^M$

dos2unix Document1.txt && cat -A Document1.txt
thierry$
test $
ascii$
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
19 oct. 2007 à 12:19
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
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
19 oct. 2007 à 12:30
Affiche maintenant tes commandes sur tes fichiers et le résultat à l'écran, merci.
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 12:49
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
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
19 oct. 2007 à 13:08
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.
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 14:18
cat -A Document1.txt && grep '^M' Document1.txt
thierry^M$
test ^M$
ascii^M$
^M$
^M$


Etonnant !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
19 oct. 2007 à 14:25
Essaye avec "grep -E" (ou egrep), pour voir ;-\
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 14:27
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" :-|
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 14:28
cat -A Document1.txt && grep -E '^M' Document1.txt ;echo $?
thierry^M$
test ^M$
ascii^M$
^M$
^M$
1

Pareil :-|
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
19 oct. 2007 à 14:29
Fais un grep sans le cat avant pour voir ce qu'il en ressort vraiment...
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 14:29
Et apparemment avec sed ca marche aussi :
sed conversion retours chariots dos crlf unix lf
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
19 oct. 2007 à 14:31
Ben c'est avec "sed" que je fais mes tests depuis ce matin pour convertir mes fichiers ;-))
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
19 oct. 2007 à 14:32
grep -E '^M' Document1.txt

RIEN !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
19 oct. 2007 à 14:34
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.
0