Вывести файл без последней строки с помощью head

Пытаюсь сделать так:

head -n -1 file

Но получаю ошибку:

head: illegal line count -- -1

head вроде бы поддерживает отрицательные аргументы. В чём же проблема?


Ответы (3 шт):

Автор решения: rokitoker

Как вариант, можно сделать что-то такое:

 head -$((`wc -l test | awk '{print $1}'` -1)) test
→ Ссылка
Автор решения: Ainar-G

Отрицательные индексы в head — это расширение GNU. Документация к POSIX head говорит ясно:

[…] The application shall ensure that the number option-argument is a positive decimal integer.

Можете использовать sed, удалив из входного потока (не из оригинального файла) последнюю строку:

$ sed -e '$d' ./file.txt

(Либо поставить более свежий набор GNU'тых инструментов.)

→ Ссылка
Автор решения: Danny

Вам это уже написали, на всякий случай напишу более прямо: у вас не GNU/Linux, поэтому не смотрите man, который относится к GNU coreutils. У вас на маке будет отличаться набор параметров.

→ Ссылка