我怎样才能转换这个Excel文件,使其不仅仅是一行?

我怎样才能转换这个Excel文件,使其不仅仅是一行?

我有一个 Excel 文件,如下图所示,可供下载这里。我需要的是提取项目(B 列)下的变量和 G 列中的值。首先,我尝试将 Excel 文件另存为逗号分隔的 .csv 文件,但是当我检查Mac OS X 终端,它告诉我 CSV 文件只有一行:

$ wc -l Layout.csv
0 Layout.csv

知道为什么会出现这种情况吗?

Excel文件

以下是在文本编辑器中打开的 CSV 文件,显示它有多行:

文件的 csv 版本

您可以下载该文件这里

答案1

看到您的 CSV 输出后,问题就清楚了:您告诉 Excel 使用 CR 行结尾,可能是因为它告诉您它们是“Macintosh”样式。这是严重过时的信息,十多年来都不是事实。

三种主线结尾风格:

  1. LF:Unix 及其所有主要衍生版本使用的样式,包括Mac OS X。

  2. CR:“经典”Mac OS 选择的风格,2001 年被 Apple 放弃并转向 Mac OS X。由于经典 Mac OS 是唯一使用这种风格的流行操作系统,因此在实践中几乎再也没有见过。您链接到的 CSV 文件就是这些罕见的示例之一。

  3. CR+LF:DOS/Windows 风格的行结束符。从技术上讲,这种风格更符合 ASCII 的历史,因此“更正确”,但在 Microsoft 世界之外并不常见。

解决此问题的最佳方法是让 Excel 使用 LF 行结尾,这是 OS X 的本机形式,这将使wc其他命令行 Unix 工具满意。但是,这超出了本论坛的范围。 (尝试超级用户如果你真的无法自己解决。)

解决这个问题的一个主题 Unix 命令行方法是:

$ tr '\r' '\n' < Layout.csv > Layout-LF.csv

(这是这类问题之一,有多少人提供不同的解决方案就有多少种。)

相关内容