如何在 Linux Ubuntu 中的不同时间重复不同的行?

How repeating differents lines at different times in Linux Ubuntu?

如何使用具有规范的文件在不同的时间重复不同的行? (我觉得举例说明会更好)

示例(我想要重复行的文件):

ID01 rs01 AB
ID02 rs01 BA
OA03 rs01 AA
EA04 rs01 BB

示例(指定每行必须重复多少次的文件- 指定第一列中的字符):

ID01 1
ID02 5
OA03 2
EA04 3

我想要输出文件:

ID01 rs01 AB
ID02 rs01 BA
ID02 rs01 BA
ID02 rs01 BA
ID02 rs01 BA
ID02 rs01 BA
OA03 rs01 AA
OA03 rs01 AA
EA04 rs01 BB
EA04 rs01 BB
EA04 rs01 BB

但就我而言,我的真实数据很大。谢谢。

以下 python 脚本将完成这项工作:

import sys

default_repeats = 1

repeats_file = open(sys.argv[2])
data_file = open(sys.argv[1])

repeats = { i: int(n) for i, n in ( l.split()[:2] for l in  repeats_file.readlines() ) }

for line in data_file.readlines():
    identifier = line.split(' ')[0]
    sys.stdout.write(line * repeats.get(identifier, default_repeats))

它接受两个参数:

$ python script_file.py <file_with_data> <file_with_repetitions>