Как разбить файл на номер строки
Я хочу отделить файл журнала длиной 400 Кб от определенного номера строки.
Для этого вопроса, давайте сделаем это произвольное число 300k.
Есть ли команда Linux, которая позволяет мне сделать это (в сценарии)?
я знаю split
Позвольте мне разделить файл на равные части либо по размеру, либо по номерам строк, но это не то, что я хочу. Я хочу, чтобы первые 300 КБ в одном файле и последние 100 КБ во втором файле.
Любая помощь будет оценена. Спасибо!
Если подумать, это больше подходит для сайта суперпользователя или сервера.
1 ответ
file_name=test.log
# set first K lines:
K=1000
# line count (N):
N=$(wc -l < $file_name)
# length of the bottom file:
L=$(( $N - $K ))
# create the top of file:
head -n $K $file_name > top_$file_name
# create bottom of file:
tail -n $L $file_name > bottom_$file_name
Кроме того, если подумать, в вашем случае будет работать split, так как первый split больше второго. Разделение помещает баланс входных данных в последний раздел, поэтому
split -l 300000 file_name
будет выводить xaa
с 300 тыс. строк и xab
с 100k строк, для входа с 400k строк.