スプールをより小さなCSVファイルに分割する方法

スプールをより小さなCSVファイルに分割する方法

以下のシェルスクリプトを使用して、特定のテーブルの2つの列(フィールド)を次のように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

おすすめ記事