내 UNIX 스크립트에서 csv가 더 많은 파일 크기를 사용하는 이유는 무엇입니까?

내 UNIX 스크립트에서 csv가 더 많은 파일 크기를 사용하는 이유는 무엇입니까?

나는 그것을 사용하고 있다이것csv 형식으로 레코드를 가져오는 유닉스 스크립트입니다. 이 목적을 위해 SQL 쿼리가 있습니다. 여기에는 다음 정보가 포함되어 있습니다.

SET PAGESIZE 5000
SET COLSEP ","
SET LINESIZE 2000
SET FEEDBACK OFF
SET NEWPAGE NONE
SET UNDERLINE OFF

PAGESIZE공간을 더 많이 차지하기 때문일까요 ?

스크립트는 4MB CSV( OBTM.csv) 파일을 반환하지만, 이를 CSV( ) 파일로 변환하면 OBTM.xlsx48KB가 됩니다.

내 의심을 명확히 해주세요

답변1

대부분의 경우 모든 레코드의 모든 필드는 필드 너비에 공백으로 채워집니다. 쿼리를 확인해야 하지만 select * from table대신 필요할 수도 있습니다.

select rtrim(field1) || ',' || rtrim(field2) || ',' || rtrim(field3) -- ...

또는 sed 스크립트를 통해 csv 파일을 실행하여 초과 공간을 정리합니다.

sed -i 's/[[:blank:]]\+,/,/g' OBTM.csv

관련 정보