Se você tiver acesso ao GNU date , você pode fazer:
$ ( date="1899-12-31"; printf 'DATE\tDATA\n';
tail -n+2 file |
while read line; do
date="$(date -d "$date + 1 day" +%F)"
printf '%s\t%s\n' "$date" "$line"
done; ) > newfile
Explicação
-
date="1899-12-31": defina a variável$datepara a data de início menos um dia. -
printf 'DATE\tDATA\n';: imprime os cabeçalhos das colunas. -
tail -n+2 file |: imprime tudo, exceto a primeira linha (o cabeçalho) do seu arquivo, e passa para o loopwhile. -
while read line; do ... ; done: processa cada linha de entrada, salvando-a como$line. -
date="$(date -d "$date + 1 day" +%F)": adicione um dia ao valor de$date. -
printf '%s\t%s\n' "$date" "$line": imprime as variáveis$datee$lineatuais. -
( ... ) > newfile: isso faz com que todo o comando seja executado em um subshell para que você possa capturar a saída do primeiroprintfe o loop e redirecioná-lo paranewfile.