2014-09-03 2 views
2

У меня довольно большой файл, который мне нужно разбить. Однако мне не нужны первые 1000 строк. Я хотел бы начать разделение на линии 1001, а затем продолжить разбивать файл на 1000. Я знаю, как разбить на 1000, это не проблема.unix split skip first n строк

КОД:

split --lines=1000 *.txt 

Однако, я хочу, чтобы пропустить первые 1000 строк. Есть какой-либо способ сделать это?

+3

Зачем? Просто не используйте первый сгенерированный файл. 'sed 1,1000d * .txt | split --lines = 1000-должен выполнять эту работу. –

ответ

5

Используйте tail -n +1001, чтобы получить строки, начиная с 1001-го линии:

cat *.txt | tail -n +1001 | split --lines=1000 
+0

для чего используется команда cat? это просто еще один способ объединить файлы? Я уже работаю с большим слиянием. @falsetru – JDE876

+0

@ JDE876, Да, это для слияния. – falsetru

+0

Отлично! Мне в основном нужен «tail -n +1001 | split -lines = 1000», так как файл уже объединен. Он работает отлично. Очень полезно знать, что вы можете использовать '| 'для выполнения нескольких команд. Это что-то новое, спасибо! @falsetru – JDE876

0

@ JDE876: Мы даже можем получить желаемый результат с помощью PERL один лайнер

perl -ne "print if $. > 1000" file 
Смежные вопросы