날짜 필드를 기준으로 CSV 파일 분할

날짜 필드를 기준으로 CSV 파일 분할

연도를 기준으로 파일을 분할하는 방법 내 파일에는 2019년과 2020년의 데이터가 있으며 아래에 파일의 몇 줄이 언급되어 있습니다.

hash,block_timestamp,addresses
1b8fb81b9c4db4cf3659d2553e7c1d5a4dac21400e331ea3deecdfa45e2eb7d7,2020-05-08 13:43:38 UTC,32UNEwo4UtXrD8xjAVDGapBcWQ9B7HBQNb
daeac50f989f0d31bcc412ca47e2e082f7d0599d8e577a9a310f7ab4e9d474d2,2020-05-08 13:21:33 UTC,3BMEXPLQqB9rkR5SMhJdA4Xm98ntT5xuw8
56777decb012d60f36f9cd4b9acfe13215f670bbe192f261db21e64f98e212be,2019-05-08 13:39:39 UTC,1AMtkH4riMpxSe7YMbs6h2aaDXVdxnmMFy
f5a1d52f013f1ee49a6cad971a5782c1c9905030d35ac28e23a2113fd1941421,2019-04-10 18:36:01 UTC,1LBBNap7kLswvgYbzmfLeskAfEMToiinkB

나는 노력했다

awk -F',' '{print >((substr($2,1,4)<=2020)?"2019":"2020")}' combined-out.csv

결과는 두 개의 빈 파일입니다. 이 문제를 해결하는 방법

답변1

<=대신 사용하고 있는 것 같습니다 <.

BEGIN {
   FS = ","
}
{
   s1 = substr($2, 1, 4)
   if (s1 < 2020) {
      print > 2019
   } else {
      print > 2020
   }
}

답변2

두 출력 파일의 헤더 행을 인쇄하려면 다음을 수행하십시오.

$ awk -F, 'NR>1{print > ($2+0)}' file

$ cat 2019
56777decb012d60f36f9cd4b9acfe13215f670bbe192f261db21e64f98e212be,2019-05-08 13:39:39 UTC,1AMtkH4riMpxSe7s6h2aaDXVdxnmMFy
f5a1d52f013f1ee49a6cad971a5782c1c9905030d35ac28e23a2113fd1941421,2019-04-10 18:36:01 UTC,1LBBNap7kLswvgYfLeskAfEMToiinkB

$ cat 2020
1b8fb81b9c4db4cf3659d2553e7c1d5a4dac21400e331ea3deecdfa45e2eb7d7,2020-05-08 13:43:38 UTC,32UNEwo4UtXrD8xDGapBcWQ9B7HBQNb
daeac50f989f0d31bcc412ca47e2e082f7d0599d8e577a9a310f7ab4e9d474d2,2020-05-08 13:21:33 UTC,3BMEXPLQqB9rkR5JdA4Xm98ntT5xuw8

또는 두 개의 출력 파일로 인쇄하십시오.

$ awk -F, 'NR==1{hdr=$0; next} {out=($2+0); if (!seen[out]++) print hdr > out; print > out}' file

$ cat 2019
hash,block_timestamp,addresses
56777decb012d60f36f9cd4b9acfe13215f670bbe192f261db21e64f98e212be,2019-05-08 13:39:39 UTC,1AMtkH4riMpxSe7YMbs6h2aaDXVdxnmMFy
f5a1d52f013f1ee49a6cad971a5782c1c9905030d35ac28e23a2113fd1941421,2019-04-10 18:36:01 UTC,1LBBNap7kLswvgYbzmfLeskAfEMToiinkB

$ cat 2020
hash,block_timestamp,addresses
1b8fb81b9c4db4cf3659d2553e7c1d5a4dac21400e331ea3deecdfa45e2eb7d7,2020-05-08 13:43:38 UTC,32UNEwo4UtXrD8xjAVDGapBcWQ9B7HBQNb
daeac50f989f0d31bcc412ca47e2e082f7d0599d8e577a9a310f7ab4e9d474d2,2020-05-08 13:21:33 UTC,3BMEXPLQqB9rkR5SMhJdA4Xm98ntT5xuw8

관련 정보