如何按照另一列中给出的次数重复列中的每个文本字段?

Ram*_*met 3 command-line r text-processing

我有一个文件,说“test.txt”:

5 80  
3 70  
4 60  
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个看起来像楼梯/台阶的 R 图:5 个数据点的 y 值 80,然后 3 个数据点的 y 值 70,然后 4 个数据点的 y 值 60,如下所示:

楼梯图示例

我怎么能转换test.txttransformed.txt

80  
80  
80  
80  
80  
70  
70  
70  
60  
60  
60  
60  
Run Code Online (Sandbox Code Playgroud)

在外壳上,或者直接从test.txt.

mur*_*uru 5

使用 Perl:

perl -pe 's/(\d+) (\d+\n)/$2 x $1/e' foo
Run Code Online (Sandbox Code Playgroud)

这里:

  • -pe 在每一行上运行表达式,之后自动打印
  • (\d+)匹配一串数字,并(\d+\n)匹配一串带有换行符的数字
  • 然后$2 x $1复制第二个匹配组与第一个匹配组的值一样多的次数。/e告诉 Perl 替换也将被评估为 Perl 表达式