如何使用 linux 命令获取非常大的 csv 文件的第二列?

How can I get the second column of a very large csv file using linux command?

我在面试时被问到这个问题。我说我可以使用 java 或 python 之类的 xreadlines() 函数来遍历整个文件并获取列,但面试官希望我只使用 linux cmd。我怎样才能做到这一点?

您可以使用 cut:

cut -d, -f2 /path/to/csv/file

您可以使用命令awk

下面是打印文件第二列的示例:

awk -F, '{print }' file.txt

为了存储它,您将它重定向到一个文件中:

awk -F, '{print }' file.txt > output.txt

我想补充 Andreas 的回答,但还不能发表评论。

对于 csv,您必须给 awk 一个字段分隔符参数,否则它将定义由空格而不是逗号绑定的字段。 (显然,使用不同字段分隔符的 csv 需要声明不同的字符。)

awk -F, '{print }' file.txt