【发布时间】:2015-05-25 07:31:34
【问题描述】:
我有文本文件,每个文件都有一列数字:
2
3
4
我想复制每一行n 次,其中n 是行中的数字,所以输出如下所示:
2
2
3
3
3
4
4
4
4
我发现的唯一示例使用了固定数量的n。
我认为sed 可能适合阅读每一行,但我无法弄清楚如何告诉sed 使用每行中的数字作为该行的次数值重复。
【问题讨论】:
我有文本文件,每个文件都有一列数字:
2
3
4
我想复制每一行n 次,其中n 是行中的数字,所以输出如下所示:
2
2
3
3
3
4
4
4
4
我发现的唯一示例使用了固定数量的n。
我认为sed 可能适合阅读每一行,但我无法弄清楚如何告诉sed 使用每行中的数字作为该行的次数值重复。
【问题讨论】:
'这在awk 中是微不足道的:
awk '{for (i = 1; i <= $1; i++) print $0}'
或者,等效地:
awk '{for (i = 0; i < $1; i++) print}'
请注意,代码针对$1 而不是$0 进行测试,但打印的是$0 而不是$1。这使您可以输入以下内容:
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
你会得到相当丰富的输出,重复行中的第一个数字所指示的频率。
【讨论】: