1

Кажется, я не могу найти какую-либо документацию, касающуюся этого: есть ли способ не дать grep напечатать путь к файлу совпадающей строки при поиске по нескольким файлам?

2 ответа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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .