Итак, я пытаюсь написать регулярное выражение для использования команды grep в команде статуса SVN. Я хочу, чтобы отображались только файлы с конфликтами, и если это конфликт дерева, дополнительная информация SVN предоставляет об этом (который находится в строке с символом>).Bash: Regex for SVN Conflicts
Итак, вот мое описание того, как SVN выводит строки с конфликтами, а затем я покажу мое регулярное выражение:
[Single Char Code][Spaces][Letter "C"][Space]Filename
[Spaces][Letter "C"][Space]Filename
[Letter "C"][Space]Filename
Это то, что я до сих пор, чтобы попытаться получить правильное регулярное выражение. Вторая часть, после условия ИЛИ, отлично работает, чтобы получить дополнительную конфликтную ситуацию с деревом. Это первая часть, где я пытаюсь получить строки с буквой C в очень специфических условиях.
Во всяком случае, я не очень велика с Regex, поэтому некоторая помощь здесь (плюс объяснение того, что я делаю неправильно, поэтому я могу учиться на этом) было бы здорово.
CONFLICTS=($(svn status | grep "^(.)*C\s\|>"))
Спасибо.
'filename' не хочет находиться в этом шаблоне' grep', и вы, вероятно, должны использовать одинарные кавычки (здесь это неважно, но полезно использовать их, когда вам не нужно расширение переменной Я думаю). –
Спасибо за ваш комментарий @EtanReisner. Обновлено. – SLePort
'^ [A-Za-z]' - no-no, вы пропускаете хотя бы некоторые символы из [: punct:] –