多次重复每一行并添加升序数字

Posted

技术标签:

【中文标题】多次重复每一行并添加升序数字【英文标题】:Repeat each line multiple times and add ascending numbers 【发布时间】:2021-09-06 05:29:45 【问题描述】:

希望文件中的每一行重复固定次数并添加升序,如下所示:

我有

wwx.domain.com/pageA/?page=1
wwx.domain.com/pageB/?page=1
wwx.domain.com/pageC/?page=1

我想要

wwx.domain.com/pageA/?page=1
wwx.domain.com/pageA/?page=2
wwx.domain.com/pageA/?page=3
wwx.domain.com/pageB/?page=1
wwx.domain.com/pageB/?page=2
wwx.domain.com/pageB/?page=3
wwx.domain.com/pageC/?page=1
wwx.domain.com/pageC/?page=2
wwx.domain.com/pageC/?page=3

我该怎么做?

【问题讨论】:

在堆栈交换网站上,强烈建议分享您迄今为止尝试过的方法(如果适用,最好以一些代码的形式)。许多用户不想花时间简单地为他们完成人们的编码任务,但所有用户都乐于帮助您解决问题! (顺便说一句,不是我投反对票,但我相信这可能是其他人反对你的问题的原因)。干杯! 【参考方案1】:

这可能对你有用(GNU sed):

sed -E 'h;:a;s/[^\n]*/&/3;t;x;s/(.*=)(.*)/echo "\1$((\2+1))"/e;x;G;ta' file

当模式空间包含少于 n 行(在本例中为 3)行时,追加当前行,将最后一个字段增加 1。

该解决方案使用保持空间来保留最后递增的行,并使用 shell 算法递增该行的最后一个字段。

【讨论】:

【参考方案2】:
awk ' sub(/.$/,""); for(i=1; i<4; i++) print $0 i ' inputfile > outputfile

说明:从输入行中删除最后一个字符,并在循环中打印(修改的)输入行,然后是循环索引。

【讨论】:

以上是关于多次重复每一行并添加升序数字的主要内容,如果未能解决你的问题,请参考以下文章

不重复数字

Pyspark向每一行添加新记录[重复]

[BZOJ2761][JLOI2011]不重复数字

2761. [JLOI2011]不重复数字map

BZOJ2761:不重复数字(splay效率对比)

SQL:多次重复结果行,并对行进行编号