Перевернутая команда хвоста?

В принципе, при написании команды или блока текста на что-то вроде: tail -n 3 (например), будет выводиться только три последних строки в stdout . Существует ли эквивалентный или подобный метод для точного обращения к нему? Таким образом, в этом примере он будет печатать все, кроме последних трех строк, в stdout .

Основано на комментарии @ don_crissti; если вы нашли это полезным, пожалуйста, подтвердите его комментарий.

Если у меня есть файл a содержащий:

 1 2 3 4 5 6 7 8 9 10 

и я хочу получить все, кроме последних трех строк, я могу запустить head -n -3 на нем, чтобы создать следующее:

 # head -n -3 a 1 2 3 4 5 6 7 

Способ сделать это может быть что-то вроде этого (не очень элегантный, но проверенный и он работает):

 a=$(wc -l <file.txt);a=$((a-3));sed ''$a'q;' file.txt 

wc -l возвращает количество строк файла. Число строк теперь присваивается a.

поскольку мы хотим все, кроме последних 3 строк, мы уменьшаем a, а затем используем sed для печати до строки ath файла.