将一行中的每个数字重复 n 次,其中 n 是行中的数字

Duplicate each number in a row n times, where n is the number in the row

我有文本文件,每个文件都有一列数字:

2
3
4

我想将每一行复制 n 次,其中 n 是行中的数字,因此输出如下所示:

2
2
3
3
3
4
4
4
4

我发现的唯一示例使用了固定数量的 n

我认为 sed 可能适合阅读每一行,但我一直无法弄清楚如何告诉 sed 使用每行中的数字作为该行应该重复的次数。

'这在 awk 中是微不足道的:

awk '{for (i = 1; i <= ; i++) print [=10=]}'

或者,等价地:

awk '{for (i = 0; i < ; i++) print}'

请注意,代码针对 </code> 而不是 <code>[=15=] 进行测试,但会打印 [=15=] 而不是 </code>。这允许您输入例如:</p> <pre><code>12 Lords a-leaping 11 Ladies dancing 10 Drummers drumming 9 Pipers piping 8 Maids a-milking 7 Swans a-swimming 6 Geese a-laying 5 Gold rings 4 Calling birds 3 French hens 2 Turtle doves 1 Partridge in a pear tree

你会得到相当丰富的输出,按照行中第一个数字的指示重复这些行。