我有以下脚本来处理包含一些数据的文件:首先,将标题打印到输出文件中。然后从输入中随机选取 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)
我现在认为这是非常低效的,所以我对如何提高此代码的性能持开放态度,也许可以防止一直打开和关闭输入文件?
感谢您的时间!