grep первое знакомство

grep предназначен для продвинутого поиска текста. Мы будем искать в файлах и потоках данных. Давайте скачаем несколько книжек:
https://linux.cttit.ru/files/books/the_lion_the_witch_and_the_wardrob.txt
https://linux.cttit.ru/files/books/aliceas_adventures_in_wonderland.txt
https://linux.cttit.ru/files/books/treasure_island.txt
Помните, как это делается? (Если не помните, при помощи wget)

Попробуем найти слово (далее «вхождение») «sea» в каждом файле поочереди:

grep "sea" aliceas_adventures_in_wonderland.txt
grep "sea" the_lion_the_witch_and_the_wardrob.txt
grep "sea" treasure_island.txt

Обратите внимание, что мы в тексте находим не просто искомое вхождение, а всю строку, где встречается это вхождение.

А если нужно найти все вхождения вне зависимости от регистра букв (sea, SEA, SeA и проч.)?
Для этого применим ключ «-i»:

grep -i "sea" treasure_island.txt

А если в двух файлах?

grep "sea" treasure_island.txt aliceas_adventures_in_wonderland.txt

А если во всех?

grep "sea" *

А если во всех текстовых (txt)?
Изучите справку «grep», ответьте на вопрос: Как производить поиск текста не только в текущем каталоге, но и подкаталогах?

Поиск текста в потоке данных.

Команда ls /etc/ выдаст нам большой список файлов. Попробуем в этом списке отыскать вхождение «sys», подключив конвеером команду grep:

ls /etc/ | grep sys

Теперь вернёмся к ранее скачанным файлам. Прочтём содержимое файла «the_lion_the_witch_and_the_wardrob.txt» и найдём в нём вхождения «Narnia»:

cat the_lion_the_witch_and_the_wardrob.txt | grep "Narnia"