Поиск дежурного промолчал, хотя ошибки в журнале были. Здесь видно, как grep сравнивает буквы и что значит его пустой вывод.
grep печатает строки файла, в которых встречается шаблон. Буквы он сравнивает точно: error и ERROR для него разные слова, отсюда и пустой вывод в начале урока. Поведение меняют ключи:
| Ключ | Что делает |
|---|---|
-i |
регистр букв не важен |
-n |
добавляет номер строки |
-c |
печатает только число найденных строк |
Пустой вывод значит одно: строк с таким шаблоном нет. Возможно, слово пишется иначе или ты ищешь не в том файле. Если файла нет или его нельзя прочитать, grep так и скажет: No such file or directory или Permission denied.
Шаблон grep — регулярное выражение, и правила у него свои, не как у шаблона имён *.tmp: точка в нём значит «любой символ», ^ в начале — «начало строки», а квадратные скобки — «один из символов в скобках».
Чтобы искать текст буквально, например [ERROR], добавь -F. Найденное можно сохранить через > из урока о путях: grep -i error service.log > errors.txt.
Найди все ошибки и что было после
В каталоге ~/text-lab найди строки с ошибками вместе с их номерами, а потом посмотри три последние строки журнала.
Сначала предположи
Сколько строк напечатает grep -n -i error service.log?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.