【发布时间】:2018-11-15 16:24:33
【问题描述】:
我在不同的位置有很多文件,包括路径模式中的 */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 之后的前 3 行中找到第一个带有 MODULE XXX(XYZ 等相同)和 SIGNED*1 模式的文件并停止搜索。 SIGNED 字总是出现在 MODULE 之后的 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
在第一次(正确)出现之后,该命令仍在搜索和解析文件,浪费时间。
【问题讨论】:
-
您的预期输出是什么样的?很确定这对我来说是一个
sed问题。