разделитель файла по max кол-ву строк

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
file="some_list"
max=30
i=0
part=1
g=0
if [[ -z $1 ]]; then
echo "Usage: $0 filename"
exit 0
else
file="$1"
fi
for line in "$(cat ${file})"; do
#echo "i: $i k: ${part} max: $max"
echo "part ${part}"
i=$(($i + 1))
g=$(($g + 1))
#echo "$g"
echo "${line}" >> "${file}.${part}"
if [[ $i -eq $max ]]; then
i=0 && part=$((${part} + 1))
fi
done