标签: toml

从文本文件中提取从特定类别标题开始的文本到下一个类别标题

我有一个以下格式的 TOML 文件(类别可以有任何名称,顺序编号只是一个例子,不能保证):

[CATEGORY_1]
A=1
B=2

[CATEGORY_2]
C=3
D=4

E=5

...

[CATEGORY_N]
Z=26
Run Code Online (Sandbox Code Playgroud)

我想要实现的是检索给定类别中的文本。

所以,如果我指定,比方说,[CATEGORY_1]我希望它给我输出:

A=1
B=2
Run Code Online (Sandbox Code Playgroud)

我尝试使用标志grep来完成此任务,z因此它可以将换行符解释为空字节字符并使用此正则表达式:

(^\[.*])             # Match the category 
  ((.*\n*)+?         # Match the category content in a non-greedy way
    (?=\[|$))        # Lookahead to the start of other category or end of line
Run Code Online (Sandbox Code Playgroud)

除非我删除^了表达式开头的 ,否则它不起作用。但是,如果我这样做,它会将松散的括号错误解释为一个类别。

有没有办法正确地做到这一点?如果没有grep,则使用其他工具,例如sedawk

grep text-processing pcre toml

3
推荐指数
3
解决办法
261
查看次数

标签 统计

grep ×1

pcre ×1

text-processing ×1

toml ×1