Команда awk внутри цикла for для чтения и записи нескольких файлов

У меня есть набор CSV-файлов, в одном из них есть метка времени, во всех остальных просто данные, но все они имеют одинаковое количество строк.

Я хотел бы добавить метку времени ко всем файлам csv. В настоящее время это работает, но вместо записи новых файлов с out_ перед именем я бы просто хотел перезаписать исходные файлы. Если я использую только $file, я получаю только метку времени, а не данные из файлов.

#!/bin/bash
for file in *.csv;
do
    awk -F, -v var="$file" '{getline f1 < var ;print $2, f1}' OFS=, timestamp.csv >  out_$file
done

person emge    schedule 18.01.2021    source источник
comment
Если вы используете GNU awk, вы можете использовать его inplace расширение. В противном случае вам нужно записать в новый файл, а затем переименовать или скопировать.   -  person Barmar    schedule 19.01.2021
comment
Я думаю, что paste было бы проще использовать здесь. Чтобы paste перезаписал оригинал, используйте sponge из пакета moreutils: paste -d, "$file" timestamp.csv | sponge "$file".   -  person Socowi    schedule 19.01.2021