我想檢查任何特定目錄中是否存在任何DOS文件。 除了^ M字符之外,是否有任何方法可以區分DOS文件和UNIX?檢查UNIX上的DOS文件
我試過使用文件,但它給出了兩個相同的輸出。
$ file test_file
test_file: ascii text
而且轉換後:
$ unix2dos test_file test_file
$ file test_file.txt
test_file.txt: ascii text
我想檢查任何特定目錄中是否存在任何DOS文件。 除了^ M字符之外,是否有任何方法可以區分DOS文件和UNIX?檢查UNIX上的DOS文件
我試過使用文件,但它給出了兩個相同的輸出。
$ file test_file
test_file: ascii text
而且轉換後:
$ unix2dos test_file test_file
$ file test_file.txt
test_file.txt: ascii text
的CRLF(\r\n
,^M
)行結尾字符是Unix和DOS/Windows ASCII文件之間的唯一區別,所以不行,沒有別的辦法。
如果你有fromdos
命令你可以嘗試將它的輸出與原文件進行比較:
file=test_file
fromdos < $file | cmp $file -
這失敗(非零$?
)如果fromdos
剝奪任何\r
了。
dos2unix
可能以類似的方式使用,但我不知道它的確切語法。
如果你居然把視窗換行符,你會看到從file
以下的輸出:
test_file.txt: ASCII text, with CRLF line terminators
不適用於每個版本的Unix。 – 2011-01-10 13:54:53