Учитывая текстовый файл неизвестной длины, как я могу прочитать, например, все, кроме первых двух строк файла? Я знаю, tail
что дадут мне последние N строк, но я не знаю, что N впереди.
Итак, для файла
AAAA
BBBB
CCCC
DDDD
EEEE
я хочу
CCCC
DDDD
EEEE
А для файла
AAAA
BBBB
CCCC
Я бы получил просто
CCCC
command-line
scripting
tail
unix-head
Николас М. Т. Эллиотт
источник
источник
head
для этого?Предполагая, что ваша версия tail поддерживает это, вы можете указать начало хвоста после X строк. В вашем случае вы бы сделали 2 + 1.
источник
Простое решение с использованием awk:
источник
{ print }
является действием по умолчанию и может быть опущено.Попробуй
sed 1,2d
. При необходимости замените 2.источник
tail -n +linecount filename
начнется выход на линииlinecount
изfilename
, такtail -n +3 filename
должны делать то , что вы хотите.источник
tail -n +17 filename
будет. Я использую bash / ubuntu LTStail
приняли синтаксис, который я использовал в своем исходном ответе, но теперь нужно использовать явную-n
опцию. Я соответствующим образом обновил свой ответ.Используйте это, предположим, что первый образец называется sample1.dat, тогда он
tail --lines=3 sample1.dat
будет печатать все строки с 3-й до последней строки.Для второго примера снова предположим, что он называется sample2.dat, он
tail --lines=-1 sample2.dat
будет печатать последнюю строку ...источник
tail +3 anyfile
хотел сказать, что одна команда, дает желаемые результаты для общего случая, в то время какtail --lines=N
требует заранее знать N, чтобы дать желаемый результат.tail
... разве это не должно быть "снизу вверх"? (Ба-дум ТИШ! Спасибо, я буду здесь всю неделю ...)Я действительно не знаю, как сделать это с помощью хвоста или головы, но с помощью
wc -l
(количества строк) и выражения bash вы можете этого добиться.Надеюсь это поможет.
источник
используя awk, чтобы получить все, кроме последних двух строк
awk, чтобы получить все, кроме первых двух строк
ИЛИ вы можете использовать больше
или просто удар
источник