lines

Как разбить большой файл на маленькие?

Разбить текст на файлы по 500 тыс. строк в каждом.

$ split -d -a6 -l500000 log.txt s
$ ls -1
s000000
s000001
s000002
....

Разбить по содержимому:
$ echo -e "1\n2\n1\n2\n1\n2\n1\n2" | csplit - -z -f '' -n 4 '/2/+1' '{*}' > /dev/null

Содержимое файлов 0000, 0001, 0002, 0003:
1
2