Голова POSIX и хвост не эквивалентная функция

Это, вероятно, вызывается функциями экономии электроэнергии в графическом драйвере или другом драйвере. Это - только предположение все же. Попытайтесь установить закрытый графический драйвер и посмотрите, работает ли он? Иначе это может быть проблема в коде ядра или X.Org.

3
15.05.2013, 18:38
1 ответ

Поскольку никто не думал, что опцию, которую Вы ищете, стоило реализовать, таким образом, нет никакого синтаксиса для запроса этого.

Рассмотрите, как это должно было бы быть реализовано. Во-первых, необходимо было бы искать в конец файла, сканирование назад для выяснения, где Энная последняя строка начинается, обратите внимание на то положение, ищите назад на начало и затем распечатайте строки, пока Вы не достигаете положения, которое Вы помнили. Это намного более сложно, чем какой head обычно делает. (С другой стороны, Вы могли считать весь файл в память, отбросить N последние строки и распечатать остальных.), Что еще более важно, хотя, это не работало бы с unseekable потоками.

С другой стороны, tailфункции довольно просты реализовать. Это никогда не должно хранить больше, чем строки N (в -n -N случай). Для -n +N случитесь это просто должно рассчитать, сколько строк для пропуска, прежде чем это начнет печатать их.

4
27.01.2020, 21:20
  • 1
    @StephaneChazelas имени полного пути, GNU head -n -1 потребности также одна строка устройства хранения данных (или два зависящий, что Вы действительно считаете). И не перестал работать здесь. –  AProgrammer 15.05.2013, 18:25
  • 2
    я высоко сомневаюсь относительно любой реализации head или tail на самом деле хранит строки; это должно было бы просто сохранить положение в файле. Как Вы говорите, начинающий с EOF, посмотрите назад для нахождения Энной новой строки. Запишите положение и распечатайте весь файл до того положения. Не точно интенсивно использующий ресурсы: time head -n +10 [88 MB file on a harddisk] отчеты 0,002 с. И кто должен сказать, "стоит ли опцию реализовать?" –  l0b0 15.05.2013, 18:42
  • 3
    @l0b0, но это должно работать над каналами non-seekable, таким образом, это не может зависеть от seek. (Это могло бы иметь оптимизацию для seekable файлов, но это должно иметь нейтрализацию.) –  cjm 15.05.2013, 18:59
  • 4
    @cjm я забыл о не -seekспособные потоки :) Я все еще не могу верить, исключая последние строки N, намного более редко, чем исключение первых строк N. Я был бы upvote Ваш ответ, если это не было для первого абзаца и протеста о seekспособные потоки. –  l0b0 16.05.2013, 10:50

Теги

Похожие вопросы