Skip to content

提供一个命令 split 来拆分导出的大 JSON 文件? #229

Description

@killme2008

我们现在数据导出的文件,单个文件可能超过 20M,导致用户要导入的时候,无法导入,我们是否可以在命令行提供一个命令,来协助用户拆分这个文件。导出的文件格式都是:

{ "results": [
  json对象1,
  json对象2,
  .....按行显示的对象列表...
]}

参考(linux only)

#!/bin/bash
if [ "$#" -ne 1 ] || ! [ -f "$1" ]; then
  echo "Usage: $0 File" >&2
  exit 1
fi

filesize=$(python -c "import os; print os.path.getsize(\"$1\")")
SPLIT_THRESHOLD=18874368 #18M

if [ $filesize -gt $SPLIT_THRESHOLD ] ; then
    lines=$(wc -l $1 | awk -F' ' '{print $1}')
    split_files=$(($filesize/15728640)) #15M
    echo $split_files
    split_lines=$((($lines+1)/$split_files))

    filename=$(basename "$1")
    split --additional-suffix='.json' -d -l $split_lines $1 $filename
fi

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions