如何使用终端从csv文件中提取列
How to extract column from csv file using terminal
我刚刚开始主要使用 Unix 系统进行 运行 我的 plink 分析。我需要从我的参考 csv 文件中提取两列(第一列和第三列)并从中创建一个新的 csv。我怎样才能在 unix 环境中做到这一点?
我的参考文件 File.csv 看起来像
V1 V2 v3 V4 V5 V6 V7 V8 V9
1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2
我想提取列 V1 和 V3 并制作一个新的 csv 来查看它。 New.csv
V1 V3
1 1
2 2
我应该使用什么命令行在 unix 中执行此操作?
如果您的值是用空格分隔的,您可以使用 awk
生成所需的结果,如下所示:
awk '{print " " }' File.csv | column -t
使用较新版本的 column
,您可以使用 -R
选项使输出列按照您的示例右对齐。
您的数据不是 CSV 文件,因为它不包含任何逗号作为分隔符。 CSV 代表逗号分隔值。
您的数据采用基于列的格式。为此,您可以使用 cut
:
cut -c 1-2,6-8
1-2
取“V1”,6-8
取 space 和“V3”。
Lets assume these are comma separated values. – Aryh
I want to extract column V1 and V3 and make a new csv
awk -F',' -v OFS=, '{print ,}' file.csv > New.csv
我刚刚开始主要使用 Unix 系统进行 运行 我的 plink 分析。我需要从我的参考 csv 文件中提取两列(第一列和第三列)并从中创建一个新的 csv。我怎样才能在 unix 环境中做到这一点? 我的参考文件 File.csv 看起来像
V1 V2 v3 V4 V5 V6 V7 V8 V9
1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2
我想提取列 V1 和 V3 并制作一个新的 csv 来查看它。 New.csv
V1 V3
1 1
2 2
我应该使用什么命令行在 unix 中执行此操作?
如果您的值是用空格分隔的,您可以使用 awk
生成所需的结果,如下所示:
awk '{print " " }' File.csv | column -t
使用较新版本的 column
,您可以使用 -R
选项使输出列按照您的示例右对齐。
您的数据不是 CSV 文件,因为它不包含任何逗号作为分隔符。 CSV 代表逗号分隔值。
您的数据采用基于列的格式。为此,您可以使用 cut
:
cut -c 1-2,6-8
1-2
取“V1”,6-8
取 space 和“V3”。
Lets assume these are comma separated values. – Aryh
I want to extract column V1 and V3 and make a new csv
awk -F',' -v OFS=, '{print ,}' file.csv > New.csv