data.csvという2GBのcsvファイルがあります。 data.csvから5つの列を抽出し、新しいファイル(好ましくは新しいcsvファイル)に移動したいと思います。
どうすればいいですか?実際に列を印刷せずにこれを実行できるawkコマンドはありますか?
答え1
特別な贅沢がない単純な場合には、csv
次のcut
ようにすることができます。
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
代わりに。