我有一个带有数字列表的文本文件。我想将第11个字符更改为随机数。
input.txt中
00018674395618674395
00018674396618674396
00018674397618674397
00018674398618674398
00018674399618674399
00018674400618674400
sed 's/^\(.\{11\}\)./\1'$(((RANDOM % 10)+1))'/' input.txt > output.txt
然而,这只是生成一个随机数并将其作为第11个字符插入,因此第11个数字在每行中变为例如4。
我想在每一行都有一个随机数
00018674395618674395
00018674396318674396
00018674397518674397
00018674398718674398
00018674399718674399
00018674400218674400
提前致谢
答案 0 :(得分:1)
srand()
播种随机数生成器,以防每次生成结果时需要不同的随机数字串。如果没有,您可以删除所有BEGIN {srand()}
。 (-*-
实际上不在输出中,只是为了更容易查看随机数字的位置。)
$ awk 'BEGIN {srand()} {print substr($0,1,10) (int(10 * rand())) substr($0,12)}' r.txt
-*-
00018674398618674395
00018674394618674396
00018674395618674397
00018674391618674398
00018674394618674399
00018674405618674400
-*-
$ awk 'BEGIN {srand()} {print substr($0,1,10) (int(10 * rand())) substr($0,12)}' r.txt
-*-
00018674399618674395
00018674394618674396
00018674396618674397
00018674397618674398
00018674391618674399
00018674405618674400
-*-