Я использую grep для фильтрации каталогов, которые мне не интересны:

svn stat | grep -v data/charts | grep -v lib/model | grep -v web/pics

Кажется, немного "хаки". Есть ли лучший способ указать более одной строки для игнорирования, чтобы мне не приходилось связывать несколько команд grep?

3 ответа3

2

Вы можете использовать disjuction с grep. Это символ канала, как во многих регулярных выражениях, но вы должны избегать его, поскольку bash интерпретирует его как настоящий канал. Попробуй это:

svn stat | grep -v data/charts\|lib/model\|web/pics
2

Вы можете сделать svn stat | grep -vE 'data/charts|lib/model|web/pics'

Вам также может быть интересно посмотреть на grep -x . ack может быть еще одним интересным инструментом для вас.

2

Или используйте grep -f и поместите список шаблонов в файл. (Это наиболее удобно, если список вещей довольно постоянен, конечно.) Grep -vf работает нормально и инвертирует смысл соответствия, как обычный grep -v. Просто убедитесь, что у вас нет пустых строк в файле, полном шаблонов, потому что они будут соответствовать всему!

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