我有一个 csv 文件,打算将其导入到mysql
表中。因此,我想确保我报告的内容LINES TERMINATED BY
正确。但是,我无法弄清楚这个 csv 中的行结尾是什么字符。
我猜它终止于\n
(标准 Unix EOL)。我如何才能确定这一点?
我试过了
cat -v file.csv
file file.csv
我也尝试过使用 vim,:set list
它只显示了换行符的位置$
任何建议,将不胜感激
答案1
xxd
您可以使用作为包的一部分的文件来创建十六进制转储vim-common
。
xxd file.csv | less
然后检查行尾:
- 0a => \n
- 0d => \r
- 0d0a => \r\n
答案2
您可以使用来file
指示行尾的类型。
Unix:
$ file file1.txt
file1.txt: ASCII text
注意事项:
$ file file2.txt
file2.txt: ASCII text, with CRLF line terminators
并且知道 DOS 使用回车符和换行符(“\r\n”)作为行尾,而 Unix 仅使用换行符(“\n”)。
因此您可以确定您想要的任何文件的 EOL。
答案3
除了检查之外,为什么不简单地设置您喜欢的行尾样式:
sudo apt-get dos2unix
将允许您访问dos2unix
命令unix2dos
行实用程序。
这些将根据名称转换文本文件。
警告:包含混合内容的文件有很麻烦,我不知道该问题是否已经消失。