Use nl :
nl -s, -w1 file
Isso adicionará um número incremental ao início de cada linha. -s, especifica que o número e o resto da linha devem ser separados por uma vírgula. -w1 especifica o número de caracteres a serem usados para o número da linha.
Editar : Como Stéphane Chazelas apontou em o comentário , a flag -w1 reduz os números com mais de 1 dígitos. Isso pode ser um bug na implementação do nl do Solaris. Além disso, você pode querer numerar o conteúdo de linha especial ( -d $'\n\n' ) e as linhas emtpy (-ba):
NL='
'
nl -s, -ba -d "$NL$NL" file
A saída (com GNU coreutils 8.12.197 ):
$ nl -s, -ba -d "$NL$NL" file
1,4,2,64,1088,80,1,Y,Y
2,5,2,64,1088,95,2,Y,Y
3,8,2,1088,39813120,10,12,Y,Y
4,6,2,1088,39813120,0,2,Y,Y
5,7,2,1088,39813120,5,1,Y,Y
6,8,2,1088,39813120,10,2,Y,Y
No seu script, seria assim:
NL='
'
for fname in conv2016_02_cos_speed2percent_data_migration.csv; do
nl -s, -ba -d "$NL$NL" "$fname" > tmp.tmp && mv tmp.tmp "$fname"
done