我偶尔会处理一些文本文件,其中某些部分确实有多个具有相同结构的段落。这是一个例子:
Some unrelated preface I'm not interested in... Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Etiam scelerisque.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Etiam scelerisque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam scelerisque.
001 [SomeTitle 1] - Some Subtitle 1
Name: SomeName
Area: SomeArea
Content: Some multi-line comment...Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Etiam scelerisque. Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Etiam scelerisque.
002 [SomeTitle 2] - Some Subtitle 2
Name: SomeOtherName
Area: SomeOtherArea
Content: Some other multi-line comment...Lorem ipsum dolor sit amet, consectetur
adipiscing elit.
我正在寻找一种简单的方法来查询这样的文件。例如,如果我查询“Area:SomeOtherArea”,结果应该是具有该区域的文件的所有块。我的意思是所有四个段落:标题、名称、区域、内容。我可以将grep与 -A 和 -B 选项一起使用,但问题是内容段落可能包含任意数量的行。这只是这个具体的例子;结构可能完全不同。
我正在寻找一种轻量级、易于适应的解决方案,也许是 CLI 工具的组合。我不想重新发明轮子。