스풀을 더 작은 CSV 파일로 분할하는 방법

스풀을 더 작은 CSV 파일로 분할하는 방법

아래와 같은 쉘 스크립트를 사용하여 특정 테이블의 두 열(필드)을 다음과 같이 csv 파일로 스풀링합니다.

#!/usr/bin/bash

FILE="emp.csv"

sqlplus -s scott/tiger@XE  <<EOF

SET PAGESIZE 50000
SET COLSEP ","
SET LINESIZE 200
SET FEEDBACK OFF

SPOOL $FILE

SELECT name,city FROM EMP;

SPOOL OFF
EXIT
EOF

하지만 결과 csv 파일이 너무 커서 내 편집기에서 열 수 없습니다. 레코드를 더 작고 열 수 있는 여러 csv 파일로 분할할 수 있는 방법이 있습니까? 특정 값을 초과하면 데이터가 다른 파일로 스풀링되도록 일부 카운터를 사용할 수 있습니까?

답변1

cat emp.csv | split -l 6000

이 경우 6000줄 길이의 작은 파일 묶음이 생성됩니다. 기본값은 xaaxab이지만 변경할 수 있습니다. 에 대한 매뉴얼 페이지를 참조하세요 split.

관련 정보