csv의 각 행을 특정 열에 포함된 문자열로 파일 이름을 사용하여 새 파일에 저장합니다.

csv의 각 행을 특정 열에 포함된 문자열로 파일 이름을 사용하여 새 파일에 저장합니다.

아래와 같이 Linux 시스템에 csv 파일이 있습니다.

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

내가 원하는 것은 공백으로 구분된 파일의 해당 숫자만 사용하여 n이 csv의 항목을 텍스트 파일로 분할 하는 것입니다. nN은 이름의 값에 따라 결정됩니다.

따라서 위의 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

새 파일이 천 개가 넘는 경우에만 문제가 발생합니다.

관련 정보