Привет!
Мне было поручено создать отчет о файлах, которые мы получаем от наших поставщиков оборудования. Мне нужно выполнить поиск этих файлов для двух полей «Test_Version» и «Model-Manufacturer»; для каждого поля мне нужно захватить их соответствующие значения.
При выполнении каждого оператора отдельно я получаю нужные результаты:
1) для 'Test_Version' это было просто:
find . -name "*.VER" -exec grep 'Test_Version=' '{}' ';' -print;
./(FILE_NAME).VER
Test_Version=2.6.3
./(FILE_NAME).VER
Test_Version=2.4.7
2) для «Модель-Производитель», это было немного сложно, так как мне нужно несколько строк. Я решил эту проблему, используя параметр Perl Regex -P.
find . -name "*.VER" -exec grep -P 'Model-Manufacturer:.\n.' '{}' ';' -print
./(FILE_NAME).VER
--> Model-Manufacturer:
D12-100
./(FILE_NAME).VER
--> Model-Manufacturer:
H21-100
В идеале я хотел бы создать простой отчет, который выглядит следующим образом
(FILE_NAME)
Test_Version=2.6.3
Model-Manufacturer: D12-100
(FILE_NAME)
Test_Version=2.4.7
Model-Manufacturer: H21-100
Моя попытка объединить оба greps не работает, т.е. ничего не найдено:
find . -name "*.VER" -exec grep -P 'Test_Version=.Model-Manufacturer:.\n.' '{}' ';' -print
Как я могу выполнить поиск по обоим полям и получить желаемый результат?