将 csv 中的每一行保存到新文件,文件名作为特定列中包含的字符串

将 csv 中的每一行保存到新文件,文件名作为特定列中包含的字符串

我在 Linux 机器上有一个 csv 文件,如下所示:

value1 value2 name  
1      2      a  
2      3      b  
4      5      c  

我想要的是将n这个 csv 中的条目拆分为n文本文件,仅使用该文件中的相应数字以空格分隔。 N 由名称中的值确定。

所以上面的 csv 将变成:

  • a.txt含有1 2
  • b.txt含有2 3
  • c.txt含有4 5

如果某个特定条目有多个条目,name那么这些条目应合并到一个文件中。

前如果有的话

1  2  a   
21 31 a

那么应该有a.txt一个

1  2     
21 31

答案1

其实很简单

awk '{print $1, $2 > $3 ".txt"}' file.csv

只有当新文件超过一千个时,您才会遇到麻烦

相关内容