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

약 1000개 이상의 새 파일이 있는 경우에만 문제가 발생해야 합니다.

관련 정보