例如,我的文件有以下行。
A,B,C
E,F,G
H,I,J
我希望输出如下。
A,B,C,0
E,F,G,1
H,I,J,2
我想在最后添加一个随机数。任何人都可以帮助我吗?
答案 0 :(得分:1)
awk
救援!
您要添加的内容不是随机数,而是序列号(随机数可能会发生冲突)
这是带有测试用例的脚本
$ printf "%s\n" {A..I} | paste -d, - - - |
awk '{print $0 "," NR-1}'
A,B,C,0
D,E,F,1
G,H,I,2
答案 1 :(得分:0)
看起来你想要的是一个顺序号码。这是一个 awk 解决方案:
awk '{printf "%s,%s\n", $0, p++}' input.txt
答案 2 :(得分:0)
根据条件:
最后添加一个随机数
下次不应重复该号码
awk 'function randint(n){ return int(n * rand()) }
BEGIN{ FS=OFS="," }
{
rn=randint(++c); # rn - random number
if (rn in a) { # if the number had been shown before
do {
rn=randint(c+3*2) # generate new random number
}
while (rn in a) # until a unique number is obtained
}
a[rn]; $4=rn # add new random number as last field
}1' file
示例性输出:
A,B,C,0
E,F,G,6
H,I,J,5