小编qua*_*sor的帖子

加速文本处理

我有以下脚本来处理包含一些数据的文件:首先,将标题打印到输出文件中。然后从输入中随机选取 60000 行并打印到输出(明确需要多次打印同一行的可能性)。

N = 60000
gawk '{if (NR < 37) print $0}' input > output
MAX=$(gawk 'END{print NR}' input)

for ((i=1; i<=$N; i++ ))
do

   declare $(gawk -v min=37 -v max=$MAX -v seed=$RANDOM 'BEGIN{srand(seed); print "x="int(min+rand()*(max-min+1))}')
   gawk -v l=$x 'NR>36 && NR==l {print $0}' input >> output

done
Run Code Online (Sandbox Code Playgroud)

我现在认为这是非常低效的,所以我对如何提高此代码的性能持开放态度,也许可以防止一直打开和关闭输入文件?

感谢您的时间!

awk text-processing gawk

4
推荐指数
1
解决办法
1111
查看次数

标签 统计

awk ×1

gawk ×1

text-processing ×1