Найти все файлы кода C # в каталоге рекурсивно в Bash - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь найти все файлы .cs и .xaml в Bash с помощью регулярных выражений find . -name '(^\w+\.cs$)|(^\w+\.xaml$)'

Он работает в c #, но не работает в оболочке git bash. Какое регулярное выражение я могу использовать, чтобы найти все необходимые файлы?

1 Ответ

1 голос
/ 21 октября 2019

С GNU find вы можете использовать

find . -regextype posix-extended -regex '.*/[a-zA-Z]+\.(cs|xaml)'
find . -regextype posix-extended -regex '.*/[[:alpha:]]+\.(cs|xaml)'

Шаблон будет соответствовать всему пути (обратите внимание, что шаблон find должен соответствовать всей строке), который соответствует

  • .*/ - любое число от 0+ до последнего /
  • [a-zA-Z]+ - 1+ заглавные или строчные буквы ([[:alpha:]]+ будет соответствовать 1+ буквам)
  • \. - точка
  • (cs|xaml) - cs или xaml подстрока.

ПРИМЕЧАНИЕ. Для сопоставления только букв ASCII следует использовать LC_ALL=C перед командой find:

LC_ALL=C find . -regextype posix-extended -regex '.*/[[:alpha:]]+\.(cs|xaml)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...