Я пытаюсь сопоставить серию .csv
файлов журнала, которые названы по дате (например, 2019-02-24.csv
).Их много, поэтому я пытаюсь составить сценарий процесса.Я создал скрипт AWK
, который объединяет отдельные файлы:
awk ' FNR==1 { while (/"_time",PIN,FULLNAME,OFFICE,Acronym,Name/) getline; } 1 { print } ' 2019-01-01.csv >> usage_history.csv
Но у меня не получается, когда я пытаюсь связать команды AWK
вместе с циклом управления в BASH:
for i in {01..28}; do echo "awk ' FNR==1 { while (/\"_time\",PIN,FULLNAME,OFFCODE,Acronym,Name/) getline; } 1 { print } ' 2019-01-$i.csv >> user_history.csv"; done
Когда я запускаю это, он выводит правильные команды в командную строку, но сценарии awk
не выполняются (они только печатаются).Если я запускаю его без echo
, я получаю сообщения о том, что файл не существует;хотя все файлы присутствуют:
bash: awk ' FNR==1 { while (/"_time",PIN,FULLNAME,OFFCODE,Acronym,Name/) getline; } 1 { print } ' 2019-01-01.csv >> user_history.csv: No such file or directory
Чего мне не хватает в моем цикле?
Вот сокращенный пример команды и сообщений об ошибках:
$ for i in {01..02}; do "awk ' FNR==1 { while (/\"_time\",PIN,FULLNAME,OFFCODE,Acronym,Name/) getline; } 1 { print } ' 2019-01-$i.csv >> user_history.csv"; done
bash: awk ' FNR==1 { while (/"_time",PIN,FULLNAME,OFFCODE,Acronym,Name/) getline; } 1 { print } ' 2019-01-01.csv >> user_history.csv: No such file or directory
bash: awk ' FNR==1 { while (/"_time",PIN,FULLNAME,OFFCODE,Acronym,Name/) getline; } 1 { print } ' 2019-01-02.csv >> user_history.csv: No such file or directory