A análise de um arquivo de texto no shell é muito lenta e extremamente propensa a erros. Você está executando grep uma vez por linha no arquivo de entrada e sed duas vezes para cada linha que contém Count . Evite fazer isso.
Tanto quanto eu posso ver, isso pode ser substituído por
awk '$1 == "Count" { printf("Count = %d\n", ++i); next } { print }' rand_file1 >rand_file1.new
Isso gera as linhas Count = com o incremento correto quando atinge uma linha cujo primeiro campo é exatamente Count e passa todas as outras linhas como estão.
Alternativamente,
awk '$1 == "Count" { $0 = sprintf("Count = %d", ++i) } { print }' rand_file1 >rand_file1.new
que modifica o valor $0 (a linha de entrada) e imprime todas as linhas com um único print .
Esta última variação pode ser encurtada para
awk '$1 == "Count" { $0 = sprintf("Count = %d", ++i) } 1' rand_file1 >rand_file1.new
Veja também " Por que usar um loop de shell para processar texto considerado uma prática ruim? ".