Насколько хорошо работает grep / sed / awk на очень больших файлах?

Мне было интересно, были ли grep, sed и awk жизнеспособными инструментами для поиска данных в очень больших файлах.

Допустим, у меня есть 1TB-файл. Если бы мне захотелось обработать текст в этом файле, каков был бы временной интервал, если бы я использовал отдельные команды grep, sed и awk, а также их смешивание.

Очевидно, что конкретный ответ невозможен, поскольку результаты будут варьироваться в зависимости от аппаратных спецификаций, но если бы я мог получить общую оценку, которая была бы полезна.

  • Удаление новых символов линии вокруг шаблонов
  • Как я могу удалить поле nth в mth с помощью команды awk?
  • Как я могу использовать регулярное выражение для извлечения текста, следующего за двумя условиями, в переменную?
  • как печатать ближайший столбец при поиске определенных строк
  • Как заменить путь в файле новым путем с помощью sed?
  • Заменить определенный текст в фигурных скобках
  • Regex: нужна помощь с использованием awk и sed для соответствия веб-сайтам по IP-адресу
  • Извлечение данных между двумя сопоставленными шаблонами в двоичном файле
  • One Solution collect form web for “Насколько хорошо работает grep / sed / awk на очень больших файлах?”

    Обычно я бы сказал, что grep – самый быстрый, sed – самый медленный. Конечно, это зависит от того, что вы делаете в точности. Я нахожу awk намного быстрее, чем sed .

    Вы можете ускорить grep, если вам не нужны реальные регулярные выражения, но только простые фиксированные строки (опция -F).

    Если вы хотите использовать grep, sed, awk вместе в трубах, тогда я поместил бы команду grep, если возможно.

    Например, это:

     grep -F "foo" file | sed -n 's/foo/bar/p' 

    обычно быстрее, чем это:

     sed -n 's/foo/bar/p' file 

    Хотя grep в первой строке кажется ненужным.

    Кстати, вы можете ускорить эти команды, используя LC_ALL=C если вы имеете дело с простыми текстовыми файлами ASCII.

    Обратите внимание, что мой опыт основан на командах gnu. Вы также можете попробовать различные реализации и сравнить скорость.

    Linux и Unix - лучшая ОС в мире.