Skip to content

Instantly share code, notes, and snippets.

@iegik
Created June 29, 2015 15:17
Show Gist options
  • Select an option

  • Save iegik/68f982866d786fc0e3a4 to your computer and use it in GitHub Desktop.

Select an option

Save iegik/68f982866d786fc0e3a4 to your computer and use it in GitHub Desktop.
Split file $1 into $2 chunks
#!/bin/bash
F_NAME=$1
CHUNKS=$2
ALL=`wc -l $F_NAME | awk '{print $1}'`
N=`expr $ALL / $CHUNKS`
A=0
# Getting CSV head
#head -n1 $F_NAME > ${F_NAME%%.csv}_head.csv
# Splitting
#head -n`expr $A + $N` $F_NAME | tail -n$N > ${F_NAME%%.csv}_part1.csv
awk 'NR>'$A'&&NR<='`expr $A + $N` $F_NAME > ${F_NAME%%.csv}_part1.csv
A=`expr $A + $N`
awk 'NR>'$A'&&NR<='`expr $A + $N` $F_NAME > ${F_NAME%%.csv}_part2.csv
A=`expr $A + $N`
awk 'NR>'$A'&&NR<='`expr $A + $N` $F_NAME > ${F_NAME%%.csv}_part3.csv
A=`expr $A + $N`
awk 'NR>'$A'&&NR<='`expr $A + $N` $F_NAME > ${F_NAME%%.csv}_part4.csv
A=`expr $A + $N`
awk 'NR>'$A'&&NR<='`expr $A + $N` $F_NAME > ${F_NAME%%.csv}_part5.csv
echo "File has splited into "$N" chunks:"
wc -l ${F_NAME%%.csv}_part*.csv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment