我目前遇到一个问题,当我试图在文件上执行dos2unix命令时,脚本会失败。
这是我在脚本中所拥有的:
dos2unix -n data/file data/tmp_file
dos2unix: Binary symbol found at line 21107611
dos2unix: Skipping binary file data/input/DATA.txt
mv -f data/tmp_file data/input/DATA.txt
mv: cannot stat ‘data/tmp_file’: No such file or directory
我上线是疑问,我在这里有一个“ ^ @”。这是什么?如何使用dos2unix命令使脚本正常工作?
{128392938928392838123129381298398129^@
谢谢
答案 0 :(得分:3)
^@
是Vim表示的空字节; cp。 :help <Nul>
普通文本文件不包含空字符。二进制文件通常包含许多空字符,如果将它们整体转换,它们将损坏。这就是dos2unix
拒绝转换的原因。
您有几种选择:
:help ++ff
,例如:w ++ff=unix
)。诸如dos2unix
之类的命令行工具仍然可以用于非交互式调用。dos2unix
命令具有一个-f|--force
选项来强制执行转换。