如何使用 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
我在面试时被问到这个问题。我说我可以使用 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