多次重复每一行并添加升序数字
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
说明:从输入行中删除最后一个字符,并在循环中打印(修改的)输入行,然后是循环索引。
【讨论】:
以上是关于多次重复每一行并添加升序数字的主要内容,如果未能解决你的问题,请参考以下文章