我想复制密钥名称x次,并有一个单独的列来指示复制号码,例如让我们说我有三个关键名称如下:
101
102
103
所以,我希望每个上面的数字(名称)复制3次,并且有一个单独的标识符号码等于4个字符。因此它看起来像这样:
101 0001
101 0002
101 0003
102 0001
102 0002
102 0003
103 0001
103 0002
103 0003
我想这可能是一个相对直接的awk脚本? *编辑:我不想在脚本中指定要复制的名称 - 它应该是"复制此文本文件中的所有名称",因为它们中有很多(~400)并且都有变量名称类型。
提前谢谢!
答案 0 :(得分:1)
在bash中
echo {101,102,103}" "{01,02,03}
101 01 101 02 101 03 102 01 102 02 102 03 103 01 103 02 103 03
遵循Fedorqui对换行的建议
printf "%s\n" {101,102,103}" "{01,02,03}
101 01
101 02
101 03
102 01
102 02
102 03
103 01
103 02
103 03
答案 1 :(得分:0)
使用awk
-v
标记传递变量number
,这是每行的重复次数,sprint
将数字格式化为2位小数,零填充:
awk -v number_repeats=3 '{
for(i=0; i<number_repeats; i++) {
print $0, sprintf("%02d", i+1)
}
}'
答案 2 :(得分:0)
如果你不介意GNU Parallel
parallel -k 'printf "%02d %02d\n"' ::: {6..12} ::: 1 2 3
06 01
06 02
06 03
07 01
07 02
07 03
08 01
08 02
08 03
09 01
09 02
09 03
10 01
10 02
10 03
11 01
11 02
11 03
12 01
12 02
12 03
或者,如果您的密钥位于文件中,则称为keys
,如此
32
45
78
您可以阅读文件
parallel -k 'printf "%02d %02d\n" {1} {2}' :::: keys ::: 1 2 3
32 01
32 02
32 03
45 01
45 02
45 03
78 01
78 02
78 03