PermLUG
|
Пермская группа пользователей Linux |
|
ОблакоВход для пользователейНавигация |
Хорошие привычки #4: Перестаньте перенаправлять вывод cat![]() Простая но общая ошибка использования утилиты grep - перенаправление вывода утилиты cat в утилиту grep для поиска содержимого в файле. В этом нет никакой необходимости и это пустая трата времени, потому что утилита grep может брать имя файла в качестве аргумента. В этом случае просто незачем использовать cat: Листинг 8. Пример хорошей привычки #10: Использования grep без cat ~ $ time cat tmp/a/longfile.txt | grep and 2811 real 0m0.015s user 0m0.003s sys 0m0.013s ~ $ time grep and tmp/a/longfile.txt 2811 real 0m0.010s user 0m0.006s sys 0m0.004s ~ $
|
Новые записи в блогахАктивные обсуждения форума
|
| Пермская группа пользователей Linux, 2003—2008 |
Комментарии
Цикл заметок прикольный, отдельные вещи не знал.
С интересом жду продолжения.
Заметки естественно не мои. Перевожу с английского. Переведу все. Выложу общим текстом со ссылкой на оригинал.
А ты проверяешь правильность команд? А то что-то с грепом мне кажется очень странным и не работающим примером
К сожалению пока пишу из винды, ибо на работе. Приду домой обязательно всё проверю.
проверил grep всё путем. вот тестовая строка:
grep hd /etc/fstab
Я не про просто греп, а про конкретные команды:
$ time cat tmp/a/longfile.txt | grep and 2811В данном примере grep читает строки из стандартного ввода и из файла 2811
А тут что? выбираем строки, содержащие and, а получаем 2811. Простите, это как?
Я понимаю, что это всего лишь пример, но я считаю, что примеры должны быть правильными.
на самом деле косяк опять в верстке. в первом примере "2811" - должен находиться в новой строке.
это раз. а почему получаем 2811 действительно не понятно. Скорее всего автор имел ввиду что тут 2811 строк содержащих and и естественно выводить их не стал. Но в оригинале никаких пояснений по этому поводу.
Тогда тут вслывает ещё одна полезная команда wc:
Подсчитывает количество строк в файле tmp/a/longfile.txt, содердащих and
это я и имел ввиду.
А вот на эту тему как раз следующая хорошая привычка :) К сожалению перевести не успел еще но скажу сразу:
Листинг 10. Пример хорошей привычки #8: Подсчет строк используя и не используя grep
~ $ time grep and tmp/a/longfile.txt | wc -l
2811
real 0m0.097s
user 0m0.006s
sys 0m0.032s
~ $ time grep -c and tmp/a/longfile.txt
2811
real 0m0.013s
user 0m0.006s
sys 0m0.005s
~ $