голосование
BASH
PHP
Javascript
HTML
Firebird
Программы
PostgreSQL
Хостинг
Майнинг
Железо
Заработок на сайте
Docker
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Поиск по файлам и папкам grep BASH

Для поиска текста в файле существует команда grep. Её можно использовать для поиска файлов и папок с определёнными именем. Вы можете выполнить поиск строки внутри файлов благодаря *. Также вы можете осуществлять поиск файлов с определённым расширением *.php.


# показывает номер строки + саму строку
crontab -l | grep -n "Ivan"

# вы можете прочитать разом все файлы и сделать фильтр grep
cat * | grep 'текст для поиска'

# поиск по файлу с номером строки
grep -n 'if' create_script_comment.sh

# поиск строки
grep text file1.txt

# множественный поиск по всем файлам в папке
grep text *

# рекурсивный поиск по всем папкам внутри родительской папки
grep -R text *

# регистронезависимый и рекурсивный поиск
grep -Ri text *

# поиск слова, а не вхождения строки
grep -wR text *

# показывает количество вхождений
grep -nw text *

# поиск без названия файла. 
# будет выводиться только найденный текст со всех файлов.
grep -h text *

# поиск в списке файлов
ls -i | grep -i text

Для удобства вы можете воспользоваться регулярными выражениями.


# если в строке есть числа 1 или 2 то вернется найденная строка. 
# разделить | из одного условия делает два условия
echo 1111111111112 | grep '[1]|[2]' 

# если в строке есть 3 и 4, то вернётся найденная строка, расположение чисел не важно
echo 11111111111112234 | grep '[34]'

# если строка из 4 символов, то вернётся найденная строка
echo 1111 | grep '[0-9]\{4\}'

# если строка из содержимое файла совпадает с read или reed, 
# то вернётся найденная строка или строки
egrep 're(a|e)d' file.txt

# если в файле есть строка 3 - test или 4 - test, то вернётся найденная строка
egrep '(3|4) - test' f3.txt

# выводит совпадения
egrep "SELECT" *

# выводит номер строки в котором было совпадение
egrep -b  "SELECT" *

# поиск по целому слову
egrep -w  "SELECT" *

# если в файле есть строка с числом, то вернётся найденная строка
grep [[:digit:]] f3

Столкнулся с одной проблемой. Мне нужно было искать сразу несколько элементов. Для этих целей у grep есть разделитель |. Можно создать несколько условий для поиска.


grep "выражение1\|выражение2" file
grep -e "выражение1|выражение2" file
grep -e выражение1 -e выражение2 file
egrep "выражение1|выражение2" file

Столкнулся с определённой проблемой. Был большой файл и редактор notepad++ не позволял его редактировать. Мне нужно было очистить файл от лишних данных. Выбирать данные кусками - это кропотливое занятие. Ключ -v позволяет исключить данные в которых найдена заданная строка. Процесс исключения данных называют инверсией.


# вывести все данные на экран, кроме тех, в которых есть определённая строка
cat file.txt | grep -v search_string

Вы можете вывести содержимое файла без закомментированных строк при помощи выражения ^#. Это удобно! Многие файлы в линукс закомментированы.


# вывести все данные на экран, кроме закомментированных строк
cat ./file.txt | grep -v '^#' 

Можно очистить вывод содержимого файла от пустых строк при помощи выражения ^$. Если вам нужно подсчитать количество строк в файле, то удалите пустые строки.


# вывести все данные на экран, кроме пустых строк
cat ./file.txt | grep -v '^$'

Вы можете разукрасить вывод данных на экране. Ключ --color изменит вывод данных. Например, у меня название файла отображается фиолетовым цветом. Найденная строка подсвечивается красным цветом. Все остальные строки белого цвета. Это очень удобно.


#разукрашивание вывода
grep -v --color search_string

Для поиска помимо команды grep еще существует команда find. Читайте статью Как найти файлы по расширению размеру дате find BASH

просмотры: 8067, уровень: лёгкий уровень, рейтинг: 5, дата: 2017-02-15 09:22:03
проголосовать:

Комментарии:






поиск
реклама
банеры
сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей