Кажется, я не могу найти какую-либо документацию, касающуюся этого: есть ли способ не дать grep напечатать путь к файлу совпадающей строки при поиске по нескольким файлам?
2 ответа
5
От man grep
:
-h, --no-filename
Подавить префикс имен файлов на выходе при поиске нескольких файлов.
Использование:
grep -h 'search term' multiple files
Пример:
$ grep network apache2 svnserve sudo
apache2:# Required-Start: $local_fs $remote_fs $network $syslog $named
apache2:# Required-Stop: $local_fs $remote_fs $network $syslog $named
svnserve:# Required-Start: $network $remote_fs $syslog
svnserve:# Required-Stop: $network $remote_fs $syslog
$ grep -h network apache2 svnserve sudo
# Required-Start: $local_fs $remote_fs $network $syslog $named
# Required-Stop: $local_fs $remote_fs $network $syslog $named
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
0
здесь есть 2 переключателя на grep, которые могут вам помочь
--exclude, здесь вы можете напрямую указать имена файлов / пути для исключения, используя подстановочные символы (и экранируя фактически требуемый подстановочный знак)
пример: grep a ./* --exclude = *. log
--exclude-from, здесь вы можете указать имя файла, содержащее те строки, которые должны быть сопоставлены и исключены
Я использую GNU grep 2.5.4, на случай, если он недоступен с вашей версией grep.