Добавление имени каталога к каждой строке при объединении файлов из вложенной структуры - PullRequest
0 голосов
/ 08 мая 2018

У меня есть дерево файлов, которое выглядит так

03
├── 01
│   ├── File 1.csv   
└── 02
    ├── File 2.csv
04
├── 01
│   ├── File 1.csv 
└── 02
    ├── File 2.csv
05
├── 01
│   ├── File 1.csv
└── 02
    ├── File 2.csv

Моя цель - использовать имена папок в качестве дат ... например 03/01, 03/02 и т. Д.

для каждой созданной даты, я хочу добавить это как новый столбец в каждый соответствующий CSV.

Вот что я попробовал до сих пор ..

for i in */*; do 
    na= echo "$i"; 
done | awk -F";" '{$(NF+1)=na OFS $(NF+1)}' */*/*.csv >> ../outer/output.csv

Я пытался использовать awk, но я знаю, что что-то в нем отсутствует.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018
$ awk 'FNR==1 {sub("/[^/]+$","", FILENAME)} 
              {print $0 ";" FILENAME}' */*/*.csv >> ../outer/output.csv
0 голосов
/ 08 мая 2018

Вам не нужен цикл for. awk имеет переменную FILENAME, которая содержит текущее имя файла, из которой можно извлечь часть даты.

awk -F";" -v OFS=";" '{
    split(FILENAME, path, "/"); 
    $(NF+1) = path[1] "/" path[2]; 
    print
}' */*/*.csv >> ../outer/output.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...