当我使用命令 cat -vet filename.csv
检查文件中的特殊字符时,我有一个.CSV文件,我用 ^ @ 得到非常冗长的行,所有记录中每个字母之间的 ^ I ^ @ 和 ^ @ ^ M ^ 字符。我使用命令
file filename.csv
我得到输出为
filename.csv:Little-endian UTF-16 Unicode英文字符数据, 非常长的线,CRLF,CR线路终结器
。我有一个脚本从文件中删除控件M(^ M),其输出返回错误说::无法执行二进制文件。
我知道^我代表一个标签。我有一个脚本将^ I转换为逗号分隔文件但是任何人都可以帮我格式化错误文件以及 ^ @ 。
答案 0 :(得分:2)
如果您的输入确实是UTF-16,那么您应该使用iconv
将文件从utf16
转换为不那么麻烦的内容:
iconv -f utf16 -t utf8 < filename.csv > filename-utf8.csv
但我认为file
错误,因为那里的零字节(显示为^@
)。
您应该使用这样的文件查看您的文件,以确保内容:
xxd filename.csv | less
或
od -c filename.csv | less
如果您没有安装xxd
。这应该比cat
更准确地显示你逐字节的内容。