Я сделал скриптcron_script.sh
:
#!/bin/bash
source /path/to/env/bin/activate
cd /path/to/script/
python3.6 script.py
deactivate
Мой кронтаб:
* * * * * /path/to/cron_script.sh
Ваш код печатает только значения подстроки, предназначенные для новых столбцов, а не для существующих столбцов.
Для первой строки требуется особая обработка.
awk -F, -v OFS="," 'NR==1 { print $0,"day,month,year"; next }
{ s = substr($5, 1, 2);
g = substr($5, 4, 2);
l = substr($5, 7, 4);
print $0, s, g, l}' file.csv
печатает
id,tester,company,chief,previous_test,test,date,result,cost,day,month,year
6582983b-61d4-4371-912d-bbc76bb8208b,Audrey Feest,Pagac-Gorczany,Claudine Moakson,18/02/2019,Passwords,20/05/2020,none,£11897.96,18,02,2019
Пояснение:
NR==1
действительно для первой записи/строки. $0
вся входная запись/строка next
выполняет переход к следующей записи/строке и пропускает все оставшиеся команды для текущей записи/строки. Это означает, что другие команды будут выполняться для всех записей/строк, кроме первой. Редактировать:Как было предложено в комментарии Оливье Дюлака , разбиение строки даты можно упростить с помощью функции split
.
awk -F, -v OFS="," 'NR==1 { print $0,"day,month,year"; next }
{ split($5,a,"/"); print $0, a[1], a[2], a[3] }' file.csv
Вам не нужно разбивать $5
, просто измените /
на ,
и распечатайте. С GNU awk дляgensub()
:
$ awk -F, '{print $0 FS (NR>1 ? gensub("/",FS,"g",$5) : "day,month,year") }' file
id,tester,company,chief,previous_test,test,date,result,cost,day,month,year
6582983b-61d4-4371-912d-bbc76bb8208b,Audrey Feest,Pagac-Gorczany,Claudine Moakson,18/02/2019,Passwords,20/05/2020,none,£11897.96,18,02,2019
С любым awk:
$ awk -F, '{d=$5; gsub("/",FS,d); print $0 FS (NR>1 ? d : "day,month,year") }' file
id,tester,company,chief,previous_test,test,date,result,cost,day,month,year
6582983b-61d4-4371-912d-bbc76bb8208b,Audrey Feest,Pagac-Gorczany,Claudine Moakson,18/02/2019,Passwords,20/05/2020,none,£11897.96,18,02,2019
Выполняется командой ниже
awk -F "," 'NR==1{print $0",day,month,year"}NR == 2{print $0","substr($5,1,2)","substr($5,4,2)","substr($5,7,4)}' file
выход
id,tester,company,chief,previous_test,test,date,result,cost,day,month,year
6582983b-61d4-4371-912d-bbc76bb8208b,Audrey Feest,Pagac-Gorczany,Claudine Moakson,18/02/2019,Passwords,20/05/2020,none,£11897.96,18,02,2019