У меня есть несколько больших файлов, каждый из которых я хочу разбить / разбить на заранее определенное количество частей.

Есть ли эффективный способ сделать это в Unix (например, через awk / sed / perl)?

Также каждый файл может иметь различное количество строк.

File1.txt 20,300,055 lines
File2.txt 10,033,221 lines
etc...
1
neversaint 17 Окт 2009 в 14:23
1
Вы хотите разделить их на файлы предопределенного размера (например, 1 МБ), или вы хотите разделить его на n количество частей, и, если последнее, вы хотите разделить его по количеству строк, или в файлы одинакового размера?
 – 
Matthew Scharley
17 Окт 2009 в 14:29
3
Почему название было изменено на Perl, если вопрос не в Perl?
 – 
user181548
17 Окт 2009 в 16:46
1
Что бы вы ни думали о любой формулировке, Perl упоминается в обеих, так что на самом деле это не изменение.
 – 
JB.
17 Окт 2009 в 16:50
Либо Perl, либо Unix заменяется только Perl, и на самом деле это не изменение?
 – 
user181548
17 Окт 2009 в 18:34
1
Я не уверен, что вы думаете о Perl / Unix, но я понял, что это означает Perl для Unix. OP мог бы откатить изменение, если бы он не согласился с этим.
 – 
Sinan Ünür
18 Окт 2009 в 00:58

3 ответа

Лучший ответ

Если вы просто хотите разделить каждый файл на файлы с фиксированным количеством строк или байтов, вы можете использовать split команда.

7
Sinan Ünür 17 Окт 2009 в 16:53

Я нашел это. Возможно, вам сначала понадобится найти количество частей, которые нужно разделить.

2
NawaMan 17 Окт 2009 в 14:33

Вы можете использовать csplit, который можно разделить по контексту. Посетите страницу man / info csplit для получения дополнительной информации.

2
ghostdog74 17 Окт 2009 в 18:21