匹配字符模式之间的 N 行,移动 N 行以与字符模式内联

Gol*_*ish 2 regex sed

我正在解析维基百科表格。该表包含的数据如下

Tonga
0
Trinidad and Tobago
10
14
24
Tunisia
10
6
16
Turkey
12
14.5
26.5
Run Code Online (Sandbox Code Playgroud)

我想要一个正则表达式(可在终端中执行,最好是 sed 或类似的)将任意数量的 N 行数字移动到上述 AZ 国家/地区名称

预期的输出是:

Tonga,0
Trinidad and Tobago,10,14,24
Tunisia,10,6,16
Turkey,12,26.5
Run Code Online (Sandbox Code Playgroud)

我还没有接近,这是我最大的努力。欣赏你的智慧

perl -pe 's/^[0-9]*$/\n,/g'

生产


,
Trinidad and Tobago

,

,

,
Tunisia

,

,

,
Turkey

,
14.5
26.5
Run Code Online (Sandbox Code Playgroud)

这是不正确的,因为我正在替换 WITH\n并且需要替换\nWITH 其他内容。不幸的是,我不知道是否可以\n与 sed/perl匹配

我试过tr,但我又不知道如何在输出上保持匹配。它将所有字符替换为

tr 'A-z\n' ','

生产 ,,,,,,0,,,,,,,,, ,,, ,,,,,,,10,14,24,,,,,,,,,10,6,16,,,,,,,,12,14.5,26.5,

Ed *_*ton 5

$ awk '{printf "%s%s", (/^[0-9]/ ? "," : s), $0; s=ORS} END{print ""}' file
Tonga,0
Trinidad and Tobago,10,14,24
Tunisia,10,6,16
Turkey,12,14.5,26.5
Run Code Online (Sandbox Code Playgroud)