LINUX.ORG.RU

Как получить часть файла, пропустив строки в начале и в конце?


0

0

Здравствуйте!

У меня возник такой вопрос. Есть файл, в нем есть заголовок, данные, завершающие данные. Нужно выделить только данные. Для заголовка и завершающих данных известно, сколько строк они занимают.

Есть команды head и tail, но они выделяют из файла заголовок или конец. А нужны команды выделения «середины».

Каким средством решить проблему?


Ответ на: комментарий от sdio

Чтобы использовать это решение, надо знать количество строк в файле, чтобы вместо 9 (в вашем случае) вычислять «количество строк в файле минус количество строк завершающих данных».

xintrea
() автор топика

tail -n +N

отдаст строки кроме первых N-1.

head -n -N

отдаст строки кроме последних N.

Итого:

head -n -3 file | tail -n +2

Выдаст содержимое файла кроме первой и последних трех строк

staseg ★★★★★
()
Ответ на: комментарий от xintrea

Можно так. Сначала находишь grep'ом конец заголовка. Нужно знать структру файла, но навскидку как-то так
m=$(grep -n PATTERN FILE | tail -1 | cut -f1 -d':')
Потом примерно также находишь начало footer'а.
n=$(grep -n PATTERN FILE | head -1 | cut -f1 -d':')
А дельше sed'ом вырезаешь. Че там за файл у тебя? Показывай, интересно решить задачку

facelift
()
Ответ на: комментарий от staseg

>отдаст строки кроме первых N-1.

N-1 потому, что начинает отдавать начиная с N-ой строки.

staseg ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.