首先,一些披露:我不是 Linux 管理员,我的 Linux 管理员也不是程序员。
也就是说,我们有一个 cronjob,它运行一个mysqlimport
命令来导入每天生成的文本文件。我无法控制或参与如何创建此文件。通过反复试验,我们发现文本文件是在 Windows 机器上生成的,因此对于lines-terminated-by
参数我们必须指定\r\n
. 上周它停止正常工作,我们确定这是因为该文件现在是在 Linux 中生成的,所以我们将其更改为\n
. 我的理解(不完全清楚)是这取决于谁生成了决定使用什么平台和编码的文本文件。
我们有一个执行mysqlimport
命令的 shell 脚本。当我们提供正确的编码时,一切都会完美运行。但是由于我们不知道谁将首先创建文本文件,有没有办法确定编码是什么并实现正确的换行符?(并且“编码”在这里是正确的术语吗?)