如何从一个文件中提取列并移动到另一个文件而不打印列?

如何从一个文件中提取列并移动到另一个文件而不打印列?

我有一个名为 data.csv 的 2GB csv 文件。我想从 data.csv 中提取 5 列并移至新文件(最好是新的 csv 文件)。

我怎样才能做到这一点?是否有 awk 命令允许我在不实际打印列的情况下执行此操作?

答案1

对于没有任何特定奢侈的简单情况csvcut可能会这样做:

cut -d, -f1-5 file
1,2,3,4,5
q,w,e,r,t
a,s,d,f,g
z,x,c,v,b

或者,对于单个非连续字段,

cut -d, -f1,3,7 file
1,3,7
q,e,u
a,d,j
z,c,m

重定向到所需的新.csv文件。

答案2

大致如下:

csv 1 3 4 6 7 <data.csv >new.csv
  • 当然是假设第 1 3 4 6 和 7 列!对于 RHEL 和克隆,该命令csv位于 EPEL 中,可以按常规方式安装。对于 Ubuntu 及其朋友,请尝试:
csvtool col 1,3,4,6,7 data.csv >new.csv

例如:

$ cat data.csv
1,2,3,4,5,6,7,8,9,0
q,w,e,r,t,y,u,i,o,p
a,s,d,f,g,h,j,k,l
z,x,c,v,b,n,m
$ csvtool col 1,2,3,4,5 data.csv >new.csv
$ cat new.csv 
1,2,3,4,5
q,w,e,r,t
a,s,d,f,g
z,x,c,v,b

反而。

相关内容