У меня есть множество файлов в разных местах, включая * / synth / debug / * в их шаблоне пути, все файлы имеют расширение * .list.Файлы выглядят так:
MODULE XYZ
SIGNED_A 0
WIDTH 12
SIGNED_B 1
(...)
MODULE XXX
SIGNED_A 1
WIDTH 12
SIGNED_B 0
(...and so on...)
Мне нужно найти первый файл с шаблоном MODULE XXX (то же самое для XYZ и т. Д.) И шаблоном SIGNED * 1 в первых 3 строках после MODULE XXX и прекратить поиск.Подписанное слово всегда появляется в 1-3 строке после МОДУЛЯ.
У меня есть что-то подобное:
find . -name *.list -path "*/synth/debug/*" -type f -exec grep -FHI "MODULE XXX" -A 3 {} \; | grep "SIGNED 1" -A 3 | head -1
, но я получил:
find: ‘grep’ terminated by signal 13
после первого (правильного) вхождения, и команда все еще ищет и анализирует файлы, теряявремя.