Grep, игнорировать предупреждения

Я пробовал два раза, и это сработало для меня (Но я не знаю, правильно ли это это сделать). Сначала вам нужно создать первый Live USB, следуя шагам USB Creator.

Затем, когда новое обновление просто перезаписывает файлы, которые новее, чем те, которые находятся в usb. Ну, в моем случае все в папке dist, pool и casper. Он работал два раза, я пытался, но я говорю о том, когда 10.10 был в бета-версии, пока он не был выпущен.

40
задан 27 March 2011 в 15:37

42 ответа

Эти предупреждения направлены на поток stderr, в отличие от стандартного дескриптора файла. Вы можете отключить вывод stderr, добавив 2>/dev/null в конец вашей команды.

42
ответ дан 25 May 2018 в 22:23
  • 1
    Те более конкретны find . 2>/dev/null | grep 404.html, что будет выглядеть команда – csga5000 22 March 2018 в 01:12

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы позволить команде find (которая является рекурсивной по умолчанию) обрабатывать разрешения с флагом -readable и путями для исключения с флагами -not -path "*.svn*" и затем передайте файл в grep. Исключение каталогов осуществляется через -type f для поиска только обычных файлов.

$ find . -not -path "*.svn*" -type f -name "*.cpp" -or -name "*.h" -readable -exec grep "my terms" "{}" \;
42
ответ дан 26 July 2018 в 20:29

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы позволить команде find (которая является рекурсивной по умолчанию) обрабатывать разрешения с флагом -readable и путями для исключения с флагами -not -path "*.svn*" и затем передайте файл в grep. Исключение каталогов осуществляется через -type f для поиска только обычных файлов.

$ find . -not -path "*.svn*" -type f -name "*.cpp" -or -name "*.h" -readable -exec grep "my terms" "{}" \;
42
ответ дан 31 July 2018 в 11:31

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы позволить команде find (которая является рекурсивной по умолчанию) обрабатывать разрешения с флагом -readable и путями для исключения с флагами -not -path "*.svn*" и затем передайте файл в grep. Исключение каталогов осуществляется через -type f для поиска только обычных файлов.

$ find . -not -path "*.svn*" -type f -name "*.cpp" -or -name "*.h" -readable -exec grep "my terms" "{}" \;
42
ответ дан 2 August 2018 в 03:46

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы позволить команде find (которая является рекурсивной по умолчанию) обрабатывать разрешения с флагом -readable и путями для исключения с флагами -not -path "*.svn*" и затем передайте файл в grep. Исключение каталогов осуществляется через -type f для поиска только обычных файлов.

$ find . -not -path "*.svn*" -type f -name "*.cpp" -or -name "*.h" -readable -exec grep "my terms" "{}" \;
42
ответ дан 4 August 2018 в 19:50

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы найти команду (которая по умолчанию рекурсивна) обрабатывает разрешения с флагом -readable и path's, чтобы исключить флаги -not -path "* .svn *" , а затем передать файл в grep . Исключение каталогов выполняется с помощью -type f для нахождения только обычных файлов.

  $ find.  -not -path "* .svn *" -type f -name "* .cpp" -or -name "* .h" -readable -exec grep "мои термины" "{}" \;   
42
ответ дан 6 August 2018 в 03:53

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы найти команду (которая по умолчанию рекурсивна) обрабатывает разрешения с флагом -readable и path's, чтобы исключить флаги -not -path "* .svn *" , а затем передать файл в grep . Исключение каталогов выполняется с помощью -type f для нахождения только обычных файлов.

  $ find.  -not -path "* .svn *" -type f -name "* .cpp" -or -name "* .h" -readable -exec grep "мои термины" "{}" \;   
41
ответ дан 7 August 2018 в 21:50

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы найти команду (которая по умолчанию рекурсивна) обрабатывает разрешения с флагом -readable и path's, чтобы исключить флаги -not -path "* .svn *" , а затем передать файл в grep . Исключение каталогов выполняется с помощью -type f для нахождения только обычных файлов.

  $ find.  -not -path "* .svn *" -type f -name "* .cpp" -or -name "* .h" -readable -exec grep "мои термины" "{}" \;   
41
ответ дан 10 August 2018 в 10:04

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы найти команду (которая по умолчанию рекурсивна) обрабатывает разрешения с флагом -readable и path's, чтобы исключить флаги -not -path "* .svn *" , а затем передать файл в grep . Исключение каталогов выполняется с помощью -type f для нахождения только обычных файлов.

  $ find.  -not -path "* .svn *" -type f -name "* .cpp" -or -name "* .h" -readable -exec grep "мои термины" "{}" \;   
41
ответ дан 13 August 2018 в 16:23
  • 1
    Те более конкретны find. 2 & gt; / dev / null | grep 404.html - это то, что команда будет выглядеть так: – csga5000 22 March 2018 в 01:12

Эти предупреждения направлены на поток stderr , в отличие от стандартного дескриптора файла. Вы можете отключить вывод stderr, добавив 2 & gt; / dev / null в конец вашей команды.

41
ответ дан 15 August 2018 в 23:09
  • 1
    Те более конкретны find. 2 & gt; / dev / null | grep 404.html - это то, что команда будет выглядеть так: – csga5000 22 March 2018 в 01:12

Более непосредственно, чем фильтрация предупреждений, вы можете отключить их, добавив -s:

grep "My term" -sir --exclude-dir="\.svn" --include=*.{cpp,h} ./

. Некоторые проблемы совместимости с этой опцией. Однако это не должно быть проблемой для личного использования.

-s, --no-messages: Подавлять сообщения об ошибках о несуществующих или нечитаемых файлах. Заметка о переносимости: в отличие от GNU grep, 7-е издание Unix grep не соответствовал POSIX, поскольку ему не хватало -q и его опция -s вела себя как опция -q GNU grep. В grep greg также не было -q, но его опция -s вела себя как GNU grep. Переносимые сценарии оболочки должны избегать как -q и -s, а затем перенаправлять стандартный и вывод ошибок в / dev / null. (-s указывается POSIX.)
19
ответ дан 25 May 2018 в 22:23
  • 1
    Я только что установил 13.04, и я получаю ошибки, которые я не получал с 12.04. Может быть, что-то изменилось? Я думал, что было здорово, что grep перестанет предупреждать о файлах, являющихся каталогами, так как в большинстве случаев мне просто все равно! – Alexis Wilke 13 October 2013 в 01:34
  • 2
    Извините, я все еще на 12.10, поэтому я не могу это подтвердить. – Sebastian vom Meer 13 October 2013 в 21:07

Я получал массу раздражающих сообщений вроде этого:

grep: commands: Is a directory
grep: events: Is a directory
grep: views: Is a directory

Причина в том, что по умолчанию флаг --directories имеет значение read. Я изменил его на recurse; если вы не хотите, чтобы он автоматически выполнял рекурсивный поиск, вы можете использовать skip вместо этого.

Самый простой способ справиться с этим все время - установить его в переменной среды. В ~/.bash_profile или ~/.bashrc в зависимости от вашего дистрибутива:

export GREP_OPTIONS='--directories=recurse'

Теперь он автоматически подавляет эти сообщения всякий раз, когда я использую grep.

Другим вариантом является флаг --no-messages , стенография -s. Это также избавит вас от сообщений Is a directory, но также подавит другие сообщения, которые могут быть более полезными. Например, если вы выполняете вложенный поиск в */*/*, и такой файл этого шаблона не существует, он не скажет вам этого.

4
ответ дан 25 May 2018 в 22:23

При выполнении рекурсивного поиска в определенных файлах вы гораздо лучше используете ack-grep. Синтаксис здесь:

ack-grep -i "My term" --cpp --h

Чтобы удалить сообщения об ошибках разрешения, вы можете запустить ту же команду с sudo:

ack-grep -i "My term" --cpp --h

Но в конце концов, если вы хотите найти установленные пакеты, посмотрите на эти различные параметры: https://www.google.com/search?q=ubuntu%20search%20inside%20installed%20packages

0
ответ дан 25 May 2018 в 22:23

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы позволить команде find (которая является рекурсивной по умолчанию) обрабатывать разрешения с флагом -readable и путями для исключения с флагами -not -path "*.svn*" и затем передайте файл в grep. Исключение каталогов осуществляется через -type f для поиска только обычных файлов.

$ find . -not -path "*.svn*" -type f -name "*.cpp" -or -name "*.h"  -readable -exec grep "my terms" "{}" \; 
0
ответ дан 25 May 2018 в 22:23

Я получал массу раздражающих сообщений вроде этого:

grep: commands: Is a directory grep: events: Is a directory grep: views: Is a directory

Причина в том, что по умолчанию флаг --directories имеет значение read. Я изменил его на recurse; если вы не хотите, чтобы он автоматически выполнял рекурсивный поиск, вы можете использовать skip вместо этого.

Самый простой способ справиться с этим все время - установить его в переменной среды. В ~/.bash_profile или ~/.bashrc в зависимости от вашего дистрибутива:

export GREP_OPTIONS='--directories=recurse'

Теперь он автоматически подавляет эти сообщения всякий раз, когда я использую grep.

Другим вариантом является флаг --no-messages , стенография -s. Это также избавит вас от сообщений Is a directory, но также подавит другие сообщения, которые могут быть более полезными. Например, если вы выполняете вложенный поиск в */*/*, и такой файл этого шаблона не существует, он не скажет вам этого.

4
ответ дан 25 July 2018 в 22:17

Более непосредственно, чем фильтрация предупреждений, вы можете отключить их, добавив -s:

grep "My term" -sir --exclude-dir="\.svn" --include=*.{cpp,h} ./

. Некоторые проблемы совместимости с этой опцией. Однако это не должно быть проблемой для личного использования.

-s, --no-messages: Подавлять сообщения об ошибках о несуществующих или нечитаемых файлах. Заметка о переносимости: в отличие от GNU grep, 7-е издание Unix grep не соответствовал POSIX, поскольку ему не хватало -q и его опция -s вела себя как опция -q GNU grep. В grep greg также не было -q, но его опция -s вела себя как GNU grep. Переносимые сценарии оболочки должны избегать как -q и -s, а затем перенаправлять стандартный и вывод ошибок в / dev / null. (-s указывается POSIX.)
19
ответ дан 25 July 2018 в 22:17
  • 1
    Я только что установил 13.04, и я получаю ошибки, которые я не получал с 12.04. Может быть, что-то изменилось? Я думал, что было здорово, что grep перестанет предупреждать о файлах, являющихся каталогами, так как в большинстве случаев мне просто все равно! – Alexis Wilke 13 October 2013 в 01:34
  • 2
    Извините, я все еще на 12.10, поэтому я не могу это подтвердить. – Sebastian vom Meer 13 October 2013 в 21:07

Альтернативный подход вместо выполнения grep рекурсивно с -ir будет состоять в том, чтобы позволить команде find (которая является рекурсивной по умолчанию) обрабатывать разрешения с флагом -readable и путями для исключения с флагами -not -path "*.svn*" и затем передайте файл в grep. Исключение каталогов осуществляется через -type f для поиска только обычных файлов.

$ find . -not -path "*.svn*" -type f -name "*.cpp" -or -name "*.h" -readable -exec grep "my terms" "{}" \;
0
ответ дан 25 July 2018 в 22:17
  • 1
    Те более конкретны find . 2>/dev/null | grep 404.html, что будет выглядеть команда – csga5000 22 March 2018 в 01:12

При выполнении рекурсивного поиска в определенных файлах вы гораздо лучше используете ack-grep. Синтаксис здесь:

ack-grep -i "My term" --cpp --h

Чтобы удалить сообщения об ошибках разрешения, вы можете запустить ту же команду с sudo:

ack-grep -i "My term" --cpp --h

Но в конце концов, если вы хотите найти установленные пакеты, посмотрите на эти различные параметры: https://www.google.com/search?q=ubuntu%20search%20inside%20installed%20packages

0
ответ дан 25 July 2018 в 22:17

Я получал массу раздражающих сообщений вроде этого:

grep: commands: Is a directory grep: events: Is a directory grep: views: Is a directory

Причина в том, что по умолчанию флаг --directories имеет значение read. Я изменил его на recurse; если вы не хотите, чтобы он автоматически выполнял рекурсивный поиск, вы можете использовать skip вместо этого.

Самый простой способ справиться с этим все время - установить его в переменной среды. В ~/.bash_profile или ~/.bashrc в зависимости от вашего дистрибутива:

export GREP_OPTIONS='--directories=recurse'

Теперь он автоматически подавляет эти сообщения всякий раз, когда я использую grep.

Другим вариантом является флаг --no-messages , стенография -s. Это также избавит вас от сообщений Is a directory, но также подавит другие сообщения, которые могут быть более полезными. Например, если вы выполняете вложенный поиск в */*/*, и такой файл этого шаблона не существует, он не скажет вам этого.

4
ответ дан 26 July 2018 в 20:29

Более непосредственно, чем фильтрация предупреждений, вы можете отключить их, добавив -s:

grep "My term" -sir --exclude-dir="\.svn" --include=*.{cpp,h} ./

. Некоторые проблемы совместимости с этой опцией. Однако это не должно быть проблемой для личного использования.

-s, --no-messages: Подавлять сообщения об ошибках о несуществующих или нечитаемых файлах. Заметка о переносимости: в отличие от GNU grep, 7-е издание Unix grep не соответствовал POSIX, поскольку ему не хватало -q и его опция -s вела себя как опция -q GNU grep. В grep greg также не было -q, но его опция -s вела себя как GNU grep. Переносимые сценарии оболочки должны избегать как -q и -s, а затем перенаправлять стандартный и вывод ошибок в / dev / null. (-s указывается POSIX.)
19
ответ дан 26 July 2018 в 20:29
  • 1
    Я только что установил 13.04, и я получаю ошибки, которые я не получал с 12.04. Может быть, что-то изменилось? Я думал, что было здорово, что grep перестанет предупреждать о файлах, являющихся каталогами, так как в большинстве случаев мне просто все равно! – Alexis Wilke 13 October 2013 в 01:34
  • 2
    Извините, я все еще на 12.10, поэтому я не могу это подтвердить. – Sebastian vom Meer 13 October 2013 в 21:07

При выполнении рекурсивного поиска в определенных файлах вы гораздо лучше используете ack-grep. Синтаксис здесь:

ack-grep -i "My term" --cpp --h

Чтобы удалить сообщения об ошибках разрешения, вы можете запустить ту же команду с sudo:

ack-grep -i "My term" --cpp --h

Но в конце концов, если вы хотите найти установленные пакеты, посмотрите на эти различные параметры: https://www.google.com/search?q=ubuntu%20search%20inside%20installed%20packages

0
ответ дан 26 July 2018 в 20:29

Я получал массу раздражающих сообщений вроде этого:

grep: commands: Is a directory grep: events: Is a directory grep: views: Is a directory

Причина в том, что по умолчанию флаг --directories имеет значение read. Я изменил его на recurse; если вы не хотите, чтобы он автоматически выполнял рекурсивный поиск, вы можете использовать skip вместо этого.

Самый простой способ справиться с этим все время - установить его в переменной среды. В ~/.bash_profile или ~/.bashrc в зависимости от вашего дистрибутива:

export GREP_OPTIONS='--directories=recurse'

Теперь он автоматически подавляет эти сообщения всякий раз, когда я использую grep.

Другим вариантом является флаг --no-messages , стенография -s. Это также избавит вас от сообщений Is a directory, но также подавит другие сообщения, которые могут быть более полезными. Например, если вы выполняете вложенный поиск в */*/*, и такой файл этого шаблона не существует, он не скажет вам этого.

4
ответ дан 31 July 2018 в 11:31

Более непосредственно, чем фильтрация предупреждений, вы можете отключить их, добавив -s:

grep "My term" -sir --exclude-dir="\.svn" --include=*.{cpp,h} ./

. Некоторые проблемы совместимости с этой опцией. Однако это не должно быть проблемой для личного использования.

-s, -no-messages: Подавлять сообщения об ошибках о несуществующих или нечитаемых файлах. Заметка о переносимости: в отличие от GNU grep, 7-е издание Unix grep не соответствовал POSIX, поскольку в нем отсутствовали -q и его -s-параметр, как опция -q GNU grep. В grep greg также не было -q, но его опция -s вела себя как GNU grep. Переносимые сценарии оболочки должны избегать как -q и -s, а затем перенаправлять стандартный и вывод ошибок в / dev / null. (-s указывается POSIX.)
19
ответ дан 31 July 2018 в 11:31
  • 1
    Я только что установил 13.04, и я получаю ошибки, которые я не получал с 12.04. Может быть, что-то изменилось? Я думал, что было здорово, что grep перестанет предупреждать о файлах, являющихся каталогами, так как в большинстве случаев мне просто все равно! – Alexis Wilke 13 October 2013 в 01:34
  • 2
    Извините, я все еще на 12.10, поэтому я не могу это подтвердить. – Sebastian vom Meer 13 October 2013 в 21:07

При выполнении рекурсивного поиска в определенных файлах вы гораздо лучше используете ack-grep. Синтаксис здесь:

ack-grep -i "My term" --cpp --h

Чтобы удалить сообщения об ошибках разрешения, вы можете запустить ту же команду с sudo:

ack-grep -i "My term" --cpp --h

Но в конце концов, если вы хотите найти установленные пакеты, посмотрите на эти различные параметры: https://www.google.com/search?q=ubuntu%20search%20inside%20installed%20packages

0
ответ дан 31 July 2018 в 11:31

Я получал массу раздражающих сообщений вроде этого:

grep: commands: Is a directory grep: events: Is a directory grep: views: Is a directory

Причина в том, что по умолчанию флаг --directories имеет значение read. Я изменил его на recurse; если вы не хотите, чтобы он автоматически выполнял рекурсивный поиск, вы можете использовать skip вместо этого.

Самый простой способ справиться с этим все время - установить его в переменной среды. В ~/.bash_profile или ~/.bashrc в зависимости от вашего дистрибутива:

export GREP_OPTIONS='--directories=recurse'

Теперь он автоматически подавляет эти сообщения всякий раз, когда я использую grep.

Другим вариантом является флаг --no-messages , стенография -s. Это также избавит вас от сообщений Is a directory, но также подавит другие сообщения, которые могут быть более полезными. Например, если вы выполняете вложенный поиск в */*/*, и такой файл этого шаблона не существует, он не скажет вам этого.

4
ответ дан 2 August 2018 в 03:46

Более непосредственно, чем фильтрация предупреждений, вы можете отключить их, добавив -s:

grep "My term" -sir --exclude-dir="\.svn" --include=*.{cpp,h} ./

. Некоторые проблемы совместимости с этой опцией. Однако это не должно быть проблемой для личного использования.

-s, --no-messages: Подавлять сообщения об ошибках о несуществующих или нечитаемых файлах. Заметка о переносимости: в отличие от GNU grep, 7-е издание Unix grep не соответствовал POSIX, поскольку ему не хватало -q и его опция -s вела себя как опция -q GNU grep. В grep greg также не было -q, но его опция -s вела себя как GNU grep. Переносимые сценарии оболочки должны избегать как -q и -s, а затем перенаправлять стандартный и вывод ошибок в / dev / null. (-s указывается POSIX.)
19
ответ дан 2 August 2018 в 03:46
  • 1
    Я только что установил 13.04, и я получаю ошибки, которые я не получал с 12.04. Может быть, что-то изменилось? Я думал, что было здорово, что grep перестанет предупреждать о файлах, являющихся каталогами, так как в большинстве случаев мне просто все равно! – Alexis Wilke 13 October 2013 в 01:34
  • 2
    Извините, я все еще на 12.10, поэтому я не могу это подтвердить. – Sebastian vom Meer 13 October 2013 в 21:07

При выполнении рекурсивного поиска в определенных файлах вы гораздо лучше используете ack-grep. Синтаксис здесь:

ack-grep -i "My term" --cpp --h

Чтобы удалить сообщения об ошибках разрешения, вы можете запустить ту же команду с sudo:

ack-grep -i "My term" --cpp --h

Но в конце концов, если вы хотите найти установленные пакеты, посмотрите на эти различные параметры: https://www.google.com/search?q=ubuntu%20search%20inside%20installed%20packages

0
ответ дан 2 August 2018 в 03:46

Я получал массу раздражающих сообщений вроде этого:

grep: commands: Is a directory grep: events: Is a directory grep: views: Is a directory

Причина в том, что по умолчанию флаг --directories имеет значение read. Я изменил его на recurse; если вы не хотите, чтобы он автоматически выполнял рекурсивный поиск, вы можете использовать skip вместо этого.

Самый простой способ справиться с этим все время - установить его в переменной среды. В ~/.bash_profile или ~/.bashrc в зависимости от вашего дистрибутива:

export GREP_OPTIONS='--directories=recurse'

Теперь он автоматически подавляет эти сообщения всякий раз, когда я использую grep.

Другим вариантом является флаг --no-messages , стенография -s. Это также избавит вас от сообщений Is a directory, но также подавит другие сообщения, которые могут быть более полезными. Например, если вы выполняете вложенный поиск в */*/*, и такой файл этого шаблона не существует, он не скажет вам этого.

4
ответ дан 4 August 2018 в 19:50

Более непосредственно, чем фильтрация предупреждений, вы можете отключить их, добавив -s:

grep "My term" -sir --exclude-dir="\.svn" --include=*.{cpp,h} ./

. Некоторые проблемы совместимости с этой опцией. Однако это не должно быть проблемой для личного использования.

-s, --no-messages: Подавлять сообщения об ошибках о несуществующих или нечитаемых файлах. Заметка о переносимости: в отличие от GNU grep, 7-е издание Unix grep не соответствовал POSIX, поскольку ему не хватало -q и его опция -s вела себя как опция -q GNU grep. В grep greg также не было -q, но его опция -s вела себя как GNU grep. Переносимые сценарии оболочки должны избегать как -q и -s, а затем перенаправлять стандартный и вывод ошибок в / dev / null. (-s указывается POSIX.)
19
ответ дан 4 August 2018 в 19:50
  • 1
    Я только что установил 13.04, и я получаю ошибки, которые я не получал с 12.04. Может быть, что-то изменилось? Я думал, что было здорово, что grep перестанет предупреждать о файлах, являющихся каталогами, так как в большинстве случаев мне просто все равно! – Alexis Wilke 13 October 2013 в 01:34
  • 2
    Извините, я все еще на 12.10, поэтому я не могу это подтвердить. – Sebastian vom Meer 13 October 2013 в 21:07

При выполнении рекурсивного поиска в определенных файлах вы гораздо лучше используете ack-grep. Синтаксис здесь:

ack-grep -i "My term" --cpp --h

Чтобы удалить сообщения об ошибках разрешения, вы можете запустить ту же команду с sudo:

ack-grep -i "My term" --cpp --h

Но в конце концов, если вы хотите найти установленные пакеты, посмотрите на эти различные параметры: https://www.google.com/search?q=ubuntu%20search%20inside%20installed%20packages

0
ответ дан 4 August 2018 в 19:50

Другие вопросы по тегам:

Похожие вопросы: