將 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

只有當新文件超過一千個時,您才會遇到麻煩

相關內容