将csv文件中的列保存到多个文件中

时间:2020-11-26 22:50:58

Given a tab separated file:

给定制表符分隔文件:

$ cat foobar.tsv 
foo bar
blah    blah
black   sheep

I could do two separate cut operations to get columns into separate files:

我可以做两个单独的剪切操作来将列放入单独的文件中:

$ cut -f1 foobar.tsv > foobar-c1.tsv
$ cut -f2 foobar.tsv > foobar-c2.tsv


$ cat foobar-c1.tsv 
foo
blah
black

$ cat foobar-c2.tsv 
bar
blah
sheep

Is it possible to just save columns into multiple files with just one cut operation? E.g.

是否可以只使用一次切割操作将列保存到多个文件中?例如。

cat foobar.tsv | cut -f1 -f2 > foobar-c1.tsv,foobar-c1.tsv 

Note: The above command doesn't really work.

注意:上面的命令不起作用。

Also Note:

另请注意:

This don't count, -_-||| :

这不算,-_- ||| :

$ cut -f1 foobar.tsv > foobar-c1.tsv &&  cut -f2 foobar.tsv > foobar-c2.tsv 

1 个解决方案

#1


2  

You can achive this by using awk -

你可以用awk来实现这个目标 -

$ awk '{print $1 > "foobar-c1.csv"; print $2 > "foobar-c2.csv"}' foobar.csv 
$ cat foobar-c1.csv
foo
blah
black
$ cat foobar-c2.csv
bar
blah
sheep

#1


2  

You can achive this by using awk -

你可以用awk来实现这个目标 -

$ awk '{print $1 > "foobar-c1.csv"; print $2 > "foobar-c2.csv"}' foobar.csv 
$ cat foobar-c1.csv
foo
blah
black
$ cat foobar-c2.csv
bar
blah
sheep