сохранить каждую строку из 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

Проблемы могут возникнуть только в том случае, если новых файлов будет больше тысячи.

Связанный контент