Skip to content

Instantly share code, notes, and snippets.

@dotmanila
Created February 3, 2018 04:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dotmanila/96a5a4ede2153969754a22b14c07a0d9 to your computer and use it in GitHub Desktop.
Save dotmanila/96a5a4ede2153969754a22b14c07a0d9 to your computer and use it in GitHub Desktop.
Split a file into several equal parts.
#!/bin/bash
# File should have first column as numeric
FILE=$1
cat $FILE | sort -rn > $FILE.sort
cat $FILE.sort | awk 'NR%2==0' > $FILE.1
cat $FILE.sort | awk 'NR%2==1' > $FILE.2
rm -rf $FILE.sort
cat $FILE.1 | awk 'NR%2==0' > $FILE.a
cat $FILE.1 | awk 'NR%2==1' > $FILE.b
cat $FILE.2 | awk 'NR%2==0' > $FILE.c
cat $FILE.2 | awk 'NR%2==1' > $FILE.d
rm -rf $FILE.1
rm -rf $FILE.2
cat $FILE.a | awk 'NR%2==0' > $FILE.1
cat $FILE.a | awk 'NR%2==1' > $FILE.2
cat $FILE.b | awk 'NR%2==0' > $FILE.3
cat $FILE.b | awk 'NR%2==1' > $FILE.4
cat $FILE.c | awk 'NR%2==0' > $FILE.5
cat $FILE.c | awk 'NR%2==1' > $FILE.6
cat $FILE.d | awk 'NR%2==0' > $FILE.7
cat $FILE.d | awk 'NR%2==1' > $FILE.8
rm -rf $FILE.a $FILE.b $FILE.c $FILE.d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment