Я согласен с @CS Пей, однако это не работает для меня:
split -b=1M -d file.txt file
... как =
после -b
бросил его. Вместо этого я просто удалил его и не оставляют пространства между ним и переменной, и используется в нижнем регистре «М»:
split -b1m -d file.txt file
И добавляемых «.txt», мы используем то, что @schoon сказал:
split -b=1m -d file.txt file --additional-suffix=.txt
у меня был файл 188.5MB текстового и я использовал эту команду [но с -b5m
для 5.2MB файлов], и он вернулся 35 разделять файлы, все из которых были текстовые файлы и 5.2Mb, кроме последнего, который был 5.0Mb , Теперь, поскольку я хотел, чтобы мои строки оставались целыми, я хотел разделить основной файл каждые 1 миллион строк, но команда split
не позволяла мне даже делать -100000
, не говоря уже о «-1000000
, поэтому большое количество строк для разделения не будет работа
Можете ли вы уточнить, как можно было убедиться, что количество файлов даже без разделения строк в нем просто с помощью 'split'? – konsolebox
вы можете использовать' wc -l', чтобы получить общие строки и запустить что-то вроде этого 'a = (' wc -l yourfile'); lines = 'echo $ a/12 | bc -l'; split -l = $ lines -d file.txt file' –
Со всеми этими сложностями вы могли бы просто используйте awk, и это не сработает с не-файловым вводом, который не позволит дважды читать данные. Просто заявив, что ваше предыдущее утверждение о том, что 'split' может это сделать, не совсем корректно. И, как и ожидалось, вы использовали' wc'. – konsolebox