Bash 如何使用终端从csv文件中提取列

Bash 如何使用终端从csv文件中提取列,bash,unix,plink,Bash,Unix,Plink,我刚刚开始使用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,它将在其中显示新建.csv V1 V3 1 1 2 2 在unix中,我应该使用

我刚刚开始使用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,它将在其中显示<代码>新建.csv

V1 V3
1   1
2   2

在unix中,我应该使用什么命令行来执行此操作?

如果值以空格分隔,则可以使用
awk
生成所需的结果,如下所示:

awk '{print $1 " " $3}' File.csv | column -t

对于较新版本的
,您可以使用
-R
选项使输出列按照示例正确对齐。

如果您的值以空格分隔,则可以使用
awk
生成所需的结果,如下所示:

awk '{print $1 " " $3}' File.csv | column -t

对于较新版本的
,您可以使用
-R
选项使输出列按照示例正确对齐。

您的数据不是CSV文件,因为它不包含任何作为分隔符的coma。CSV代表以逗号分隔的值

您的数据具有基于列的格式。为此,您可以使用:


1-2
使用“V1”和
6-8
使用空格和“V3”。

您的数据不是CSV文件,因为它不包含任何作为分隔符的coma。CSV代表以逗号分隔的值

您的数据具有基于列的格式。为此,您可以使用:

1-2
取“V1”,而
6-8
取空格和“V3”


假设这些是逗号分隔的值阿利赫

我想提取列V1和V3并生成一个新的csv


假设这些是逗号分隔的值阿利赫

我想提取列V1和V3并生成一个新的csv


我只是通过举例来编辑这个问题。如果你能告诉我使用awk命令应该是什么样子,那会很有帮助。你的示例不包含逗号分隔值(csv)。让我们假设这些是逗号分隔值。
awk-F',“{print$1”“$3>”New.csv”}文件。csv
@Aryh:Plesae更新你的问题,这样我们就可以看到你的文件是什么样子了。只是在评论中提到,你帖子中的每个空格都是逗号,这让人困惑而不是有用。我只是通过举例来编辑这个问题。如果你能告诉我使用awk命令应该是什么样子,那会很有帮助。你的示例不包含逗号分隔值(csv)。让我们假设这些是逗号分隔值。
awk-F',“{print$1”“$3>”New.csv”}文件。csv
@Aryh:Plesae更新你的问题,这样我们就可以看到你的文件是什么样子了。只是在评论中提到,你的帖子中的每个空格都是逗号,这让人困惑而不是有用。
awk -F',' -v OFS=, '{print $1,$3}' file.csv > New.csv