Несколько grep ищут/игнорируют шаблоны

у кого-либо есть какие-либо идеи, как сделать это лучше?

Лично я не знаю. Вы упоминаете программы Черепахи, которые делают подобную вещь, таким образом, превосходная начальная точка должна была бы взглянуть на то, что они делают в их источнике:)

Они надеются быть соответствующими исходными файлами, которые решают эту проблему:

я отмечаю в RebuildIcons, метод в каждом из тех будет:

  1. устанавливает размер значков оболочки или глубину цвета к временной ценности
  2. обновления все окна путем широковещательной передачи изменения установки
  3. сброс, размер значков оболочки или глубина цвета к исходному значению
  4. обновляют все окна во второй раз с широковещательной передачей изменения установки

, Возможно, это - часть приема для получения вещей, работающих в XP.

20
задан Reinstate Monica 31 August 2009 в 17:38
поделиться

3 ответа

Просто направьте свой нефильтрованный вывод в один экземпляр grep и используйте расширенное регулярное выражение, чтобы объявить, что вы хотите игнорировать:

grep -Ri 64 src/install/ | grep -v -E '(\.svn|file|2\.5|2\.6)'

Изменить: Для поиска в нескольких файлах попробуйте

find ./src/install -type f -print |\
    grep -v -E '(\.svn|file|2\.5|2\.6)' | xargs grep -i 64

Редактировать: Ох. Я забыл добавить простой трюк, чтобы остановить неудобное использование нескольких экземпляров grep, а именно

ps -ef | grep something | grep -v grep

. Замена этого на

ps -ef | grep "[s]omething"

устраняет необходимость во втором grep.

26
ответ дан 30 November 2019 в 00:05
поделиться

Возможно, вы захотите использовать ack-grep , который также позволяет исключать с помощью регулярных выражений Perl и избегать всех каталогов VC, отлично подходит для поиска исходного кода.

1
ответ дан 30 November 2019 в 00:05
поделиться

вы можете использовать awk вместо grep

awk '/64/&&!/(\.svn|file|2\.[56])/' file
2
ответ дан 30 November 2019 в 00:05
поделиться
Другие вопросы по тегам:

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