Я хочу разделить 400k строку долгий файл журнала от конкретного номера строки.
Для этого вопроса, позволяет, делают это произвольным числом 300k.
Существует ли команда Linux, которая позволяет мне делать это (в рамках сценария)?
Я знаю split
позволяет мне разделить файл в равной степени или размером или номерами строки, но это не то, что я хочу. Я хочу к первому 300k в одном файле и последнему 100k во втором файле.
Любая справка ценилась бы.Спасибо!
Поразмыслив это больше подошло бы для суперпользователя или serverfault сайта.
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 -l 300000 имя_файла
выведет xaa
с 300 тыс. Строк и xab
со 100 тыс. Строк для ввод с 400 тыс. строк.