строка поиска, перед которой ставится пробел или косая черта - PullRequest
0 голосов
/ 28 марта 2020

У меня есть файлы с содержанием ниже:

76a6f0f631888fbd359420796093d19a3928123d remotes/origin/feature/ASC-122356
417435aceb671e41213697055b86d860d9a9a61c remotes/origin/feature/ASC-122356-3762
ae863a41fef068215be1529216e9dbba1314fa6f remotes/origin/master

Я хочу найти, есть ли в файле шаблон origin/master.

Я сейчас делаю как grep -e '^\S\+ origin/master$', но это не правильно. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 28 марта 2020

Следующее будет работать с grep. Положительное число непробельных символов, за которым следует пробел, за которым, возможно, следует пустая последовательность непробельных символов и ожидаемая строка.

grep -P '\S+ \S*origin/master$' test

Можно улучшить, чтобы убедиться, что origin находится либо в начале второго столбца, либо перед / для исключения таких строк, как remotes/backup-origin/master

grep -P '^\S+ (|\S*/)origin/master$' test

Обратите внимание, что для этих выражений требуются (-P) - perl совместимые регулярные выражения.

0 голосов
/ 28 марта 2020

В шаблоне используется '^ \ S +', чтобы запросить, чтобы ВСЕ символы перед источником / мастером не были пробелами (из-за '^').

Рассмотрите возможность использования аналогичной версии, которая запросит ОДИН пробел

grep -e ' \S\+origin/master$'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...