CSV 파일에서 배열 열 제거

CSV 파일에서 배열 열 제거

in.csv정수 배열 열이 포함된 CSV 파일이 있습니다 .

1,2,4,"{100,200,300}",,1
1,2,4,"{100,200,300,400,500}",,2
1,2,4,"{100,200,300,600.900,1200,1500}",1,3

다음과 같은 출력 파일을 원합니다 out.csv.

1,2,4,,1
1,2,4,,2
1,2,4,1,3

나는 시도했다:

cut -d , -f4 -- complement in.csv > out.csv

그러나 그것은 효과가 없었습니다. (세 번째 행에는 값이 있지만 다른 행에는 값이 없는 다섯 번째 열도 있습니다.)

답변1

사용csvkit:

$ csvcut -C 4 in.csv
1,2,4,,1
1,2,4,,2
1,2,4,1,3

-C플래그는 삭제할 열을 지정합니다.

답변2

이것이 일을 할 것이다

awk -F'[,]' '{print $1","$2","$3","$(NF-1)","$NF}' in.csv
  • -F'[,]' 구분 기호를 ","로 설정하는 데 사용됩니다.
  • $NF 당신을 위한 마지막 프로젝트

답변3

함께 sed간단히 다음을 수행할 수 있습니다.

sed 's/,"{.*}"//' in.csv > out.csv

결과:

cat out.csv 
1,2,4,,1
1,2,4,,2
1,2,4,1,3

관련 정보