2

I want to check whether any DOS files exist in any specific directory. Is there any way to distinguish DOS files from UNIX apart from the ^M chars ?

I tried using file, but it gives the same output for both.

$ file test_file
test_file: ascii text

And after conversion:

$ unix2dos test_file test_file
$ file test_file.txt
test_file.txt: ascii text
unwind
  • 391,730
  • 64
  • 469
  • 606
niks7
  • 35
  • 2
  • 4

2 Answers2

0

If you actually put Windows newlines in, you'll see the following output from file:

 test_file.txt: ASCII text, with CRLF line terminators
Samir Talwar
  • 14,220
  • 3
  • 41
  • 65
0

The CRLF (\r\n, ^M) line endings chars are the only difference between Unix and DOS/Windows ASCII files, so no, there's no other way.

What you might try if you have to fromdos command is to compare its output with the original file:

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

This fails (non-zero $?) if fromdos stripped any \r away.

dos2unix might be used in a similar way, but I don't know its exact syntax.

Fred Foo
  • 355,277
  • 75
  • 744
  • 836