У меня есть файловая структура, которая выглядит следующим образом:
- Папка1
- file1.feature
- file2.feature
- file3.feature
- Папка2
- file1.feature
- file2.feature
- ... и т. д.
Файлы представляют собой файлы объектов Behat, которые выглядят следующим образом:
Scenario: I am filling out a form
Given I am logged in as User
And I fill in "Name" with "My name"
Then I fill in "Email" with "myemail@example.com"
Я пытаюсь перебрать каждый файл в структуре файла, чтобы получить совпадения на моемregex:
/I fill in "[^"]+" with "([^"]+)"/gm
Регулярное выражение ищет, я заполняю "x" с "y", и я хотел бы сохранить группу захвата "y" из каждого файла, где строка в файле соответствует выражению.
Пока что я могу перебирать папки и распечатывать имена файлов в скрипте mt Bash следующим образом:
#!/bin/bash
cd behat/features
files="*/*.feature"
for f in $files
do
echo ${f}
done
Я пытаюсь получить группу захвата с помощью Sed в настоящее время, выполнивэто в моем цикле:
sed -r 's/^I fill in \"[^)]+\" with \"([^)]+)\"$/\1/'
Но я боюсь, что я иду по неверному пути, так как это возвращает все содержимое файла на протяжении всегофайлы.