我当前遇到一个问题,当尝试对文件执行 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^@
Thanks
The ^@
是 Vim 的空字节表示; cp。:help <Nul> https://vimhelp.appspot.com/intro.txt.html#%3CNul%3E
普通文本文件不包含空字符。二进制文件通常有很多空字符,如果作为一个整体进行转换,它们就会被损坏;这就是为什么dos2unix
拒绝转换它。
您有多种选择:
- 该空字符可能是意外插入的或者是垃圾字符。编辑文件(在 Vim 中)或重新创建它。如果您使用 Vim,您也可以在其中进行转换(通过:help ++ff https://vimhelp.appspot.com/editing.txt.html#%2B%2Bff, e.g.
:w ++ff=unix
)。命令行工具,例如dos2unix
仍然可以用于非交互式调用。
- 那个空字符属于那里。这
dos2unix
命令有一个-f|--force
强制转换的选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)