Как отмечает Кен Томасес в комментариях, наиболее вероятным виновником является то, что в файле используются разделители строк без перевода строки, а наиболее вероятным виновником является CR (возврат каретки).
Вы можете определить, так ли это, используя утилиту file
. Файл с такими разделителями строк выглядит так:
$ file foo
foo: ASCII text, with CR line terminators
Причина, по которой split
будет вести себя таким образом с этими разделителями строк, заключается в том, что файл будет иметь длину только одну строку (без символов новой строки). Так что split
напишет эту одну (очень длинную) строку и выйдет.