У меня есть набор 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
inplace
расширение. В противном случае вам нужно записать в новый файл, а затем переименовать или скопировать. - person Barmar   schedule 19.01.2021paste
было бы проще использовать здесь. Чтобыpaste
перезаписал оригинал, используйтеsponge
из пакета moreutils:paste -d, "$file" timestamp.csv | sponge "$file"
. - person Socowi   schedule 19.01.2021