Text 如果模式匹配,则连续打印文本块

Text 如果模式匹配,则连续打印文本块,text,awk,sed,Text,Awk,Sed,输入文件中有许多重复的文本块(在开始和结束处用关键字“Blocks”来划分)。如何仅打印不包含“NoGrade”的块?sed或awk比pcgreg、perl(我已经可以在其中创建解决方案)更可取。 除了问题-->之外,如何避免匹配输出中的重复项? 输入文件(具有重复的文本块): 输出: Blocks GradeA GradeB GradeC GradeA Blocks GradeX GradeY Grade

输入文件中有许多重复的文本块(在开始和结束处用关键字“Blocks”来划分)。如何仅打印不包含“NoGrade”的块?sed或awk比pcgreg、perl(我已经可以在其中创建解决方案)更可取。
除了问题-->之外,如何避免匹配输出中的重复项? 输入文件(具有重复的文本块):

输出:

Blocks  
    GradeA  
    GradeB   
    GradeC  
    GradeA  
Blocks  
    GradeX  
    GradeY  
    GradeZ  
Blocks   

谢谢你,雷。这就行了,我理解了语法。但如何在输出中避免重复块?如果我发现了,我也会把答案贴在这里。
Blocks  
    GradeA  
    GradeB   
    GradeC  
    GradeA  
Blocks  
    GradeX  
    GradeY  
    GradeZ  
Blocks   
awk -vRS='Blocks' '!/NoGrade/{printf "%s",$0 RT}' file
Blocks
GradeA
GradeB
GradeC
GradeA
Blocks
GradeX
GradeY
GradeZ
Blocks