检查 UNIX 上的 DOS 文件
我想检查特定目录中是否存在任何 DOS 文件。 除了 ^M 字符之外,有什么方法可以区分 DOS 文件和 UNIX 文件吗?
我尝试使用文件,但它给出了相同的输出。
$ file test_file
test_file: ascii text
转换后:
$ unix2dos test_file test_file
$ file test_file.txt
test_file.txt: ascii text
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
CRLF (
\r\n
,^M
) 行结尾字符是 Unix 和 DOS/Windows ASCII 文件之间的唯一区别,所以不,没有其他方法。如果您必须
fromdos
命令,您可能会尝试将其输出与原始输出进行比较file:如果
fromdos
剥离任何\r
,则此操作失败(非零$?
)。dos2unix
可能以类似的方式使用,但我不知道它的确切语法。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:This fails (non-zero
$?
) iffromdos
stripped any\r
away.dos2unix
might be used in a similar way, but I don't know its exact syntax.如果您确实输入了 Windows 换行符,您将看到
file
的以下输出:If you actually put Windows newlines in, you'll see the following output from
file
: