Pol*_*enn 3 command-line csv spreadsheet
我有一个 Excel 文件,如下图所示,可在此处下载。我需要的是提取项目(B 列)下的变量和 G 列中的值。首先,我尝试将 Excel 文件保存为逗号分隔的 .csv 文件,但是当我检查Mac OS X 终端,它告诉我 CSV 文件只有一行:
$ wc -l Layout.csv
0 Layout.csv
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?

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

您可以在此处下载该文件。
看到您的 CSV 输出后,问题就很明显了:您告诉 Excel 使用 CR 行结尾,可能是因为它告诉您它们是“Macintosh”样式。这是非常过时的信息,十多年来都不正确。
共有三种主要的行尾样式:
LF:Unix 及其所有主要衍生产品(包括Mac OS X)使用的风格。
CR:“经典”Mac OS 选择的风格,在 2001 年被苹果公司放弃,转向 Mac OS X。由于经典 Mac OS 是唯一使用这种风格的流行操作系统,因此在实践中几乎从未见过。您链接到的 CSV 文件是这些罕见的示例之一。
CR+LF:DOS/Windows 风格的行尾。从技术上讲,这种风格更符合 ASCII 的历史,因此“更正确”,但在 Microsoft 世界之外很少见。
解决此问题的最佳方法是让 Excel 使用 LF 行结尾,这是 OS X 的本机形式,这将使wc其他命令行 Unix 工具满意。但是,这超出了本论坛的范围。(如果您真的无法自己解决,请尝试超级用户。)
修复它的主题 Unix 命令行方法是:
$ tr '\r' '\n' < Layout.csv > Layout-LF.csv
Run Code Online (Sandbox Code Playgroud)
(这是其中一种问题,其解决方案与提供的解决方案一样多。)