Разделение неравномерного файла в bash

У меня есть файл в формате csv. Я знаю позиции, где я хочу отколоть кусок от файла и записать его как новый файл csv.

Команда split разбивает файл на фрагменты одинакового размера. Интересно, существует ли эффективный (файл огромен) способ разбить файл на куски разного размера?


person Sergey Ivanov    schedule 28.09.2013    source источник
comment
Возможно, вы захотите взглянуть на эту ссылку   -  person hrv    schedule 29.09.2013


Ответы (1)


Я предполагаю, что вы хотите разделить файл на символ новой строки. В этом случае вы можете использовать head и tail захватывает несколько строк с начала и с конца вашего файла соответственно.

Если вы хотите скопировать новую строку из файла, вы можете использовать sed, например

sed -e 1,Nd -e Mq file

где N следует заменить номером строки, предшествующей первой отображаемой строке, а M — номером последней отображаемой строки.

person Adam Zalcman    schedule 28.09.2013
comment
Итак, последняя команда полезна. Но как записать эти строки в новый файл? - person Sergey Ivanov; 29.09.2013
comment
Просто перенаправьте его на файл, которого нет в текущий каталог, например sed -e 1,10d -e 20q big.csv > small.csv - person Adam Zalcman; 29.09.2013