Обычно я бы сказал, что 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. Вы также можете попробовать разные реализации и сравнить скорость.