diff options
| -rw-r--r-- | split-file.sh | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/split-file.sh b/split-file.sh new file mode 100644 index 0000000..c8f785a --- /dev/null +++ b/split-file.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +if test "${#}" -ne 2; then +    printf "%s\n" \ +        "split file into N parts" \ +        "usage: $(basename $0) <file.txt> <parts>" +    exit 1 +fi + +if ! command -v split &>/dev/null; then +    printf "%s\n" "split not found" +    exit 1 +fi + +file="${1}" +parts="${2}" +filename="${file%.*}" +extension="${file##*.}" +total_lines=$(wc -l < "${file}") +lines_per_part=$((total_lines / parts + 1)) +split -l "${lines_per_part}" -d --additional-suffix=".${extension}" "${file}" "${filename}_" |