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

时间:2017-04-05 04:22:37

标签: perl csv awk paste cut

给定制表符分隔文件:

$ cat foobar.tsv 
foo bar
blah    blah
black   sheep

我可以进行两次单独的剪切操作,将列放入单独的文件中:

$ 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

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

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

注意:上述命令确实无效。

同时注意

这不算数,-_- ||| :

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

1 个答案:

答案 0 :(得分:2)

您可以使用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