sh 将带有标题行的CSV /文本类型文件拆分为多个文件,并将标题行复制到每个文件中。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 将带有标题行的CSV /文本类型文件拆分为多个文件,并将标题行复制到每个文件中。相关的知识,希望对你有一定的参考价值。

#!/bin/bash
# Split files with Header intact
#
# $1 is File to Split
# $2 is Number of lines in each split.
# $3 (optional) is split File Prefix
#
if [ "$1" == "" ]; then
  echo $'\n'
  echo 'ERROR: Param 1 is FileName to split' $'\n'
  echo '       Param 2 is number of lines for each split file.' $'\n\n'
  echo '       Param 3 is Split filename prefix.' $'\n\n'
  exit
fi
if [ "$2" == "" ]; then
  echo $'\n'
  echo 'ERROR: Param 1 is FileName to split' $'\n'
  echo '       Param 2 is number of lines for each split file.' $'\n\n'
  echo '       Param 3 is Split filename prefix.' $'\n\n'
  exit
fi
echo Run the script.

tail -n +2 $1 | split -l $2 - _S_
for file in _S_*
do
    head -n 1 $1> _SX_tmp_file
    cat $file>> _SX_tmp_file
    mv -f _SX_tmp_file $1.$file.csv
done

rm _S_*

以上是关于sh 将带有标题行的CSV /文本类型文件拆分为多个文件,并将标题行复制到每个文件中。的主要内容,如果未能解决你的问题,请参考以下文章

读取csv文件并将df写入带有文本换行的excel

如何将带有文本信息的 1.3 GB csv 文件读入 Python 的 pandas 对象?

使用Python将单行的文本拆分为CSV文件中同一列的多行

csv导入错误的Mysql排序规则/类型第1362行的CSV输入中的列计数无效

根据父文件头的大小将大型 CSV 文件拆分为多个文件

javascript 将文本文件或csv拆分为指定行数的较小文件