【问题标题】:Duplicate each number in a row n times, where n is the number in the row将一行中的每个数字复制 n 次,其中 n 是该行中的数字
【发布时间】:2015-05-25 07:31:34
【问题描述】:

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

2
3
4

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

2
2
3
3
3
4
4
4
4

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

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

【问题讨论】:

    标签: awk sed foreach vi


    【解决方案1】:

    '这在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
    

    你会得到相当丰富的输出,重复行中的第一个数字所指示的频率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-27
      • 2022-12-22
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 2021-11-17
      相关资源
      最近更新 更多