Если у вас есть доступ к GNU date
, вы можете:
$ ( 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
date = "1899-12-31"
: установить переменную $ date
до даты начала минус один день. printf 'DATE \ tDATA \ n';
: распечатать заголовки столбцов. tail -n + 2 file |
: распечатать все, кроме первой строки (заголовка) вашего файла, и передать это в цикл while
. при чтении строки; делать ... ; done
: обрабатывать каждую строку ввода, сохраняя ее как $ line
. date = "$ (date -d" $ date + 1 day "+% F)"
: добавить один день к значению $ date
. printf '% s \ t% s \ n' "$ date" "$ line"
: вывести текущие переменные $ date
и $ line
. (...)> newfile
: это заставляет всю команду запускаться в подоболочке, чтобы вы могли захватить вывод первого printf
и цикла и перенаправить его в newfile
.