Question

Je veux vérifier si des fichiers DOS existent dans un répertoire spécifique. Est-il possible de distinguer les fichiers DOS à partir d'UNIX en dehors des ^ M caractères?

J'essayé d'utiliser le fichier, mais il donne la même sortie pour les deux.

$ file test_file
test_file: ascii text

Et après la conversion:

$ unix2dos test_file test_file
$ file test_file.txt
test_file.txt: ascii text
Était-ce utile?

La solution

Le CRLF (\r\n, ^M) Les fins de ligne sont les caractères la seule différence entre Unix et les fichiers ASCII DOS / Windows, donc non, il n'y a pas d'autre moyen.

Ce que vous pouvez essayer si vous devez fromdos est de comparer sa sortie avec le fichier d'origine:

file=test_file
fromdos < $file | cmp $file -

échoue ($? de non-zéro) si fromdos dépouillé tout \r.

dos2unix peut être utilisé d'une manière similaire, mais je ne sais pas sa syntaxe exacte.

Autres conseils

Si vous avez réellement mis de Windows dans les nouvelles lignes, vous verrez la sortie suivante de file:

 test_file.txt: ASCII text, with CRLF line terminators
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top