J’ai un arbre de fichiers qui ressemble à ceci
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
Mon but est d’utiliser les noms de dossier comme dates … par exemple 03/01
, 03/02
et ainsi de suite.
pour chaque date de création, je souhaite l’append en tant que nouvelle colonne dans chaque fichier CSV correspondant.
Voici ce que j’ai essayé jusqu’ici.
for i in */*; do na= echo "$i"; done | awk -F";" '{$(NF+1)=na OFS $(NF+1)}' */*/*.csv >> ../outer/output.csv
J’ai essayé d’utiliser awk mais je sais qu’il me manque quelque chose.
Merci d’avance.
Vous n’avez pas besoin de la boucle for
. awk
a une variable FILENAME
qui contient le nom de fichier actuel, vous pouvez en extraire la partie date.
awk -F";" -v OFS=";" '{ split(FILENAME, path, "/"); $(NF+1) = path[1] "/" path[2]; print }' */*/*.csv >> ../outer/output.csv
$ awk 'FNR==1 {sub("/[^/]+$","", FILENAME)} {print $0 ";" FILENAME}' */*/*.csv >> ../outer/output.csv