Linux > Как найти в Linux файлы содержащие текст GREP
31.03.2015 17:50:21
Наиболее часто встречающиеся слова в статье:
[d/S20pure-ftpd] [/etc/rc2] [pure-ftpd] [d/K20pure-ftpd] [directory] ["redeem] [reward"] [подкаталогах] [найденных] [использовать]
Статья:
Используем grep для поиска текста
grep “text string” directory
При выполнении данной команды grep будет искать строку text string во всех файлах в директории directory
Примеры использования grep
$ grep "redeem reward" /home/tom/*.txt
Как найти текст во всех подкаталогах
grep позволяет искать в подкаталогах, используя опцию -r:
$ grep -r "redeem reward" /home/tom
Вывести только имена найденных grep файлов
Чтобы grep вывела имена найденных файлов, стоит использовать опцию -H.
sudo grep -Hr pure-ftpd /etc/
Вывод:
... /etc/rc2.d/S20pure-ftpd:# Provides: pure-ftpd /etc/rc2.d/S20pure-ftpd:# pure-ftpd starts and stops the pure-ftpd ftp daemon /etc/rc2.d/S20pure-ftpd:NAME=pure-ftpd /etc/rc2.d/S20pure-ftpd:WRAPPER=/usr/sbin/pure-ftpd-wrapper /etc/rc2.d/S20pure-ftpd:PIDFILE=/var/run/pure-ftpd/pure-ftpd.pid /etc/rc2.d/S20pure-ftpd:SUFFIX=`basename $ME | sed -ne 's/^pure-ftpd-\(.*\)/\1/p'` /etc/rc2.d/S20pure-ftpd: DAEMON=/usr/sbin/pure-ftpd-$SUFFIX ...
Теперь нужно прогнать вывод через фильтр, чтобы оставить только имена файлов, в которых есть вхождение текста, а также удалить дубликаты. Нужно использовать такую команду:
sudo grep -Hr pure-ftpd /etc/ | cut -d: -f1 | sort -u
Вывод:
grep: /etc/blkid.tab: No such file or directory /etc/default/pure-ftpd-common /etc/ftpallow /etc/init.d/pure-ftpd /etc/logrotate.d/pure-ftpd-common /etc/pam.d/pure-ftpd /etc/pure-ftpd/conf/AltLog /etc/pure-ftpd/conf/PureDB /etc/rc0.d/K20pure-ftpd /etc/rc1.d/K20pure-ftpd /etc/rc2.d/S20pure-ftpd /etc/rc3.d/S20pure-ftpd /etc/rc4.d/S20pure-ftpd /etc/rc5.d/S20pure-ftpd /etc/rc6.d/K20pure-ftpd