2008-11-24 5 views
13

Скажем, у меня есть файл с любым количеством строк, скажем, 125. Я хочу получить все строки, кроме первого n, скажем, 20. Итак, мне нужны строки 21-125.Unix shell: как получить последние строки файла, кроме первых 20?

Есть ли способ сделать это с помощью tail/head или какого-нибудь другого инструмента?

+4

Если вы хотите знать, что может сделать головка/хвост, прочитайте страницы руководства для них. Если вы не знали, что голова/хвост существует, я мог бы понять, почему вы задали этот вопрос, но явно спрашивая о голове/хвосте, заслуживает ответа RTFM. – camh

+0

Связано: http://stackoverflow.com/questions/604864/print-a-file-skipping-x-lines-in-bash –

ответ

33

Попробуйте

tail -n +21 myfile.txt 
+0

border case :) Должно быть +21 для строк с 21 года ... –

3

Awk сила может быть использована также:

awk -- 'NR > 20' /etc/passwd 
3

Я ржавый с этим, но что-то вроде: хвост -n +20 имя_файла

5

Попробуйте

sed -i 1,20d filename

, если вы хотите удалить первые 20 строк!